Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как закрепить линзу в пластиковой или металлической трубе?

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

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

Лучший ответ:
Да и да.
Одно имя на несколько адресов - так работают CDN-ки. С разных dns-серверов вполне могут приходить разные ответы и в DNS может хранится несколько A-записей к одному домену.

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

Худший ответ:
Да, да.
Вопрос: Зачем при переопределении object.Equals() переопределять object.GetHashCode()в C#?

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

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

Лучший ответ:
Используем preg_replace
<?php
$string = 'This is my habr';
$pattern = '/(\w+ \w+)$/i';
$replacement = '<a href="habr.com">${1}<a>';
echo preg_replace($pattern, $replacement, $string);

Test PHP preg_replace here

Худший ответ:
1. найти последний пробел
2. найти предпоследний пробел
3. разделить строку по предпоследнему пробелу
4. сформировать ссылку из последних 2 слов и вашего идентификакатора
5. склеить все
6. Profit
Вопрос: Сколько учетных записей должно быть у администратора?

Лучший ответ:
Накрутите админских групп типа antivirus_rw, freepbx_rw, пропишите эти группы в своих сервисах, как админские и накидывайте группы на нужных сотрудников.

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

Если администратору нужна вторая учётная запись, для одновременной работы с двумя записями, или учётная запись с некими ограниченными правами - он просто создаёт такую учётную запись, ограничивая срок её действия необходимым периодом времени, либо, если таковая уже существует, разблокирует её на нужный срок и при необходимости корректирует набор её прав включением в нужные группы либо исключением из ненужных групп.
Вопрос: Существуют ли коммутаторы с выходами 802.3af/at и passive poe одновременно?

Лучший ответ:
микротики умеют 24В пассив и 48в af/at.
CRS112-8P-4S-IN/CRS328-24P-4S+RM/CRS354-48P-4S+2Q+RM

Худший ответ:
Была схожая задача. Брали коммутаторы 802.3af/at, а для passive poe юзали PoE Ubiquiti INS-8023AF-O.

Вот такой девайс умеет одновременно 802.3af/at и passive poe
Ubiquiti US‑8
Вопрос: Член класса/структуры типа uint8_t * или int8_t *, оптимизация?

Лучший ответ:
Тут проблема не в том, что член класса char*, а в том, что запись идет в char*, и из-за strict aliasing правил - это может быть запись куда угодно, в том числе в &this. Кешировать пришлось бы любой член структуры, любого типа.

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

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

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

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

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

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

С restrict можно поиграть, но в чистом С++ его нет, на сколько я знаю, но можно включить расширения в gcc/clang и, возможно его можно будет использовть в плюсовом коде. Но применяйте его лучше сразу к локальному bufferу, а не к this.

Напоследок: подобного типа код выполняется достаточно быстро, оптимизировать тут особо нечего, есть смысл заморачиваться только если это очень-очень горячий код в вашем приложении. Ну и в плане оптимизации для подобных случаев лучше поискать варианты, как обойтись без копирования данных, чем надеятся, что restrict вам сильно поможет.
Вопрос: Какой стек более перспективен для релокейта джуну. C#+Unity или Python+Django?

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

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

Лучший ответ:
bin - результаты компиляции вашего приложения - в гите не нужно
obj - промежуточные результаты компиляции - в гите не нужно
ConsoleApp.csproj - файл проекта, метаданные и зависимости - кладем в гит
ConsoleApp.sln - файл решения (это проект из других вложенных проектов) - кладем в гит
Program.cs - собственно исходный текст вашей программы - кладем в гит

Чтобы делать это не руками, освойте .gitignore.
У github есть для вас шаблон для c# и VS

Худший ответ:
Заливать нужно файлы, которые нужны для генерации исполняемого файла / библиотеки. В папках bin и obj находятся генерируемые студией файлы, их заливать на github не нужно.
Вопрос: Какие подходы позволят написать зашифрованный сайт, у которого нельзя расшифровать код?

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

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

Лучший ответ:
Создаешь пустую репу на гитхабе (без readmy и прочих предлагаемых файлов).
Настраиваешь ssh соединение с гитхабом на обеих тачках.
На любой машинке в папке проекта создаешь репу.
Указываешь в качестве основного удаленного репозитория (origin) свой на гитахбе.
Заливаешь весь код на гитхаб (git push)
На второй машинке клонируешь репу из гитхаба
git clone адрес_твоей_репы_скопированный_из_интефейса_гитхаба
Дальше после окончания работы на любой машине пушишь коммиты в гитхаб (просто git push)
Перед началом работы тянешь актуальный код на машину (git pull)

Худший ответ:
Добрый день.
Если речь идет именно о применении гита, то:
- создайте репозиторий на гитхаб
- залейте туда ваш проект
- делайте коммиты, чтобы они были видны в репозитории  git commit -m ""
- добавляйте ваши комммиты на гитgit push
- на другом устройстве сделайте git pull

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


Возможно, что есть более специализированные решения, но мне этих хватает.
Вопрос: Возможна ли установка Zabbix+Grafana на одной хост машине без Docker?

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

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

Лучший ответ:
Reverse poxy.
Можно на nginx'e, можно на Apache, что больш нравится.

Худший ответ:
Если мы говорим про http/https, то тебе нужен реверс прокси между роутером и виртуальными машинами, именно он умеет на основании домена роутить трафик. Если другой протокол - то все сложнее.

Без проси можно попробовать использовать разные порты на роутере.
1.domain.ru:80 > 123.23.23.23:8080> 192.168.1.1:80 UBIQUITI EdgeRouter Lite ERLite-3
2.domain.ru:80 > 123.23.23.23:8081 > 192.168.1.2:80 ESXi
3.domain.ru:80 > 123.23.23.23:8082 > 192.168.1.3:80 Ubuntu server
4.domain.ru:443 > 123.23.23.23:4431 > 192.168.1.4:443 Ubuntu server
5.domain.ru:443 > 123.23.23.23:4430> 192.168.1.5:443Ubuntu server
Вопрос: Какую граф библиотеку python можно использовать, чтобы смоделировать устройство, как на картинкe?

Лучший ответ:
Qt вполне хороший вариант, большое комьюнити, просто работать.
PyQt6, PySide2
У неё очень широкий функционал.
Абстрактный пример на тему

Худший ответ:
Любой векторный редактор подходит. Можно нарисовать этот чертеж. Потом сохранить в какой-нить формат, максимально переносимый между средами, платформами. SVG например. Ну и дальше искать поддержку SVG в своем уютненьком Питоне или Шарпе.
Вопрос: Как рекламировать пиво на яндексе и гугле?

Лучший ответ:
Как рекламировать пиво на яндексе и гугле?Никак. Это незаконно и неэтично.

и как быть с SEO ведь органическое продвижение не попадает под закон о рекламеЧто это за фрукт  - "SEO ведь органическое продвижение" неизвестно, поэтому нельзя сказать попадает или нет. 
Под закон о рекламе попадает реклама.

Худший ответ:
Попробуйте гуглить https://zhiza.evotor.ru/kak-zakonno-reklamirovat-a...
А так и ежу понятно, прямую рекламу делать нельзя.

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

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

Худший ответ:
чем мощнее блок питания и быстрее скорость зарядки аккумулятора, тем быстрее он изнашиваетсяНе совсем так. Что касается скорости, то да, быстрая зарядка вредна из-за нагрева аккумулятора и ускорения его деградации. А вот мощность - это совершенно отдельный параметр, характеризующий всего лишь возможности БП и никак не влияющий на сам аккум. Любой БП, сколь бы мощным он ни был, при подключении слабой нагрузки может использоваться на 10% своей полной мощности, или на 1%, или вообще быть на холостом ходу, если к нему не подключено ничего. 
лучше не гнаться за 65вт для телефонов, а заряжать блоками на 20вт.Это тоже неточно. Быстрые зарядники - это "умные" устройства, которые имеют на борту микроконтроллер, запрограммированный исполнять определённый протокол. Пользуясь этим протоколом, зарядник по USB связывается со смартфоном, выясняет, насколько можно поднять ток и напряжение по сравнению со стандартными 5 вольт и 1 ампер, и потихоньку, в несколько шагов, делает это. Эти протоколы различные у разных производителей, и если зарядник не получает от смартфона подтверждение на этот подъём или получает непонятный ему сигнал на языке неизвестного ему протокола, он не поднимает напряжение/ток, а остаётся на стандартных параметрах 5 вольт и 1 ампер, пригодных для любого случая. 
Я поэкспериментировал с различными зарядниками, подключая их к различным смартфонам, с помощью вот такого кабеля с дисплеем:

В этих экспериментах и выяснилось то, что я описал выше - и пошаговость увеличения тока и напряжения, и уровень этого увеличения, и отсутствие увеличения свыше 5V/1A, если зарядник чужой.
Но есть ещё и ноутбуки, где блоки бывают и по 165вт.Насколько мне известно, производители ноутов пошли другим путём. Они более-менее стандартизовали напряжение своих БП, но допустили значительное увеличение их тока, до 6...8 ампер. Те из производителей, которым захотелось запретить применение "чужих" зарядников, ввели в зарядный кабель третий провод, по которому передаётся идентифицирующий код. Никакого сложного протокола там нет, поэтому обмануть такую идентификацию нетрудно.
Стоит ли пытаться заряжаться минимальными 60вт или нет разницы, 165вт мощность блока или 60вт?В большинстве применений это без разницы, но если вы затеете, например, заряжать аккумулятор ноута и одновременно играть в "тяжелую" игрушку, то БП может оказаться перегружен. Собственно, это единственный случай, когда покупка мощного 165-ваттного БП может быть оправдана.
Вопрос: При переводе float в string, число получается с запятой, а не с точкой. Можно ли переводить float в string так, чтобы число было с точкой?

Лучший ответ:
Запятая пишется из-за того что у тебя русская культура.

Ты можешь в ToString передать нужную культуру.
Например:
(42.5).ToString(System.Globalization.CultureInfo.InvariantCulture)


При попытке вставить строку с типами float значении float из C#, выходит ошибка

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

Худший ответ:
(10.5f).ToString(System.Globalization.CultureInfo.InvariantCulture);

Либо глобально
Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture
Вопрос: Автоматическое обрезание картинок Wordpress при загрузке?

Лучший ответ:
Добрый день.

Обычные thumbnail и тд не пойдут. Так как они просто уменьшают саму картинку,
не верю!

Вариант первый:
Через настройки в админке

❗❗❗ Читаем текст возле галочки ❗❗❗



//получаем в шаблоне:
$attachment_src=wp_get_attachment_image_src(get_post_thumbnail_id(),'thumbnail');
Вариант второй:
//functions.php
add_filter('wp_handle_upload_prefilter','add_handle_upload');
if(!function_exists('add_handle_upload')){
function add_handle_upload($file){
    add_image_size('mysize',600,200,array('center','center'));
    return $file;
}}
//получаем в шаблоне:
$attachment_src=wp_get_attachment_image_src(get_post_thumbnail_id(),'mysize');
Общий результат


Вариант третий:
Используем Imagick — отрезаем 100 px сверху и 100 px снизу
Все тумбнайлы, что создаст движок вп будут обрезаны ибо Мы обрежем исходник, а потом отдаем его вп на обработку
//functions.php
add_filter('wp_handle_upload_prefilter','add_handle_upload');
if(!function_exists('add_handle_upload')){
function add_handle_upload($file){
    $tmp_name=$file['tmp_name'];
		$image=new Imagick($tmp_name);
		$image->chopImage(0,100,0,0);//отрезаем 100 px сверху
		$imageprops=$image->getImageGeometry();//чтобы отрезать снизу надо узнать высоту и отнять 100 px и уже от нее отрезать все то, что ниже
		$image->chopImage(0,100,0,$imageprops['height']-100);//отрезаем 100 px снизу
		$image->writeImage($tmp_name);//перезаписываем временный файл

    return $file;
}}




з.ы. все возможности Imagick

Худший ответ:
https://ru.wordpress.org/plugins/wp-smushit/
Попробуй вот этот плагин он умеет обрезать изображения до заданных размеров, но откуда точно он отрезает, не могу подсказать.
Вопрос: Может ли совпадать количество ip адресов в подсети с количеством узлов сети?

Лучший ответ:
Если речь про IP, то не совпадает в IPv4 подсетях кроме /32 и /31 из-за наличия адреса для broadcast-а.

Худший ответ:
Может. А может и нет. IP адрес может быть свободным, а может быть занятым. А за ним может быть еще подсеть или тот же NAT, или другой тип сети. Или все что угодно. Сеть может быть раскидана через полпланеты, а может быть реализована программно в рамках одного девайса. В общем, может быть все что угодно и как угодно.
Вопрос: Как исправить bash: ./myprogram: No such file or directory?

Лучший ответ:
при установке в терминале Ubuntu через команду ./
Это не установка и это не команда.
chmod +x myprogram

Худший ответ:
а у вас в текущем каталоге myprogram есть? А это bash скрипт?
Вопрос: Как научиться самоорганизации?

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

Худший ответ:
Ипотека - самое лучшее средство для самоорганизации.
Вопрос: Как делается администрирование на сайтах?

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

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

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

Лучший ответ:
Изучать нужно С#.

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

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

С моей точки зрения, если вам интересно работать в банках и делать backend - то java лучше заходит. Если десктоп приложения, или unity игры - то c#
Вопрос: Vue.js данные не успевают подгрузиться?

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

Худший ответ:
watch: {
  данные: {
    immediate: true,
    handler() {
      if (данные) {
        делаете чего там вам надо
      }
    },
  },
},
Вопрос: Нейронная сеть выдает не верные значения. Как можно исправить?

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

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

В третьих, данные должны быть правильно поданы, они должны быть нормированы, быть на интервале (обычно 0-1 или к примеру -1..+1), отличный пример - для торговых объемов, подавай на вход 1/(1+v), это число будет гарантированно будет на интервале (0..1], так же старайся избегать дискретных значений и графиков с острыми вершинами (первая производная - бесконечность)...

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

В пятых, очень рекомендую внимательно подумать над функцией ошибки. Так в классическом виде функция ошибки - это сумма квадратов разницы между целевыми и вычисленными выходами, но ведь можно определить ее как к примеру размер депозита, его ты хочешь максимизировать, так что переверни 1/(a+x), при использовании текущей нейронной сети, если ты будешь торговать по своей стратегии, на каком то интервале (этот интервал должен быть привязан к моменту времени получения входных данных сети, т.е. считаем сеть для момента времени T, и симулируем торговлю за время [T-x..T] или лучше [T..T+x], т.е. в будущем, ты же доход будешь получать на основе будущих сделок после принятия решения на основе текущих значений.

... а еще у тебя может быть тупо недостаточно вычислительных мощностей, размер сети выбран неправильно, неправильно выбрано первоначальное наполнение и много много всего что и означает умение работать с нейронными сетями

Худший ответ:
А кто вам сказал, что она должна верно предсказывать на все случая жизни?
Ну и предсказывать только на основе предыдущей цены, это как угадывать погоду на завтра только по термометру за окном.