Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какие есть аналоги решения Portable apps+Veracrypt в Linux?

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

Худший ответ:
Так и в чем проблема-то ? Veracrypt она и под линукс и под macOS и под FreeBSD и даже под малинку существует.
Вопрос: Использовать методы или самому писать функции?

Лучший ответ:
В каких ситуациях есть смысл:

Улучшить свои знания.  Допустим самому попробовать реализовать какие-то алгоритмы, чтобы лучше понимать как работает поиск, сортировка, обход древовидных структур и так далее;
Специфичные требования. Например вам нужна высокая производительность, ваш основной стек на Back-end - это Node.js. Так вышло,  что вам не хватает производительности и поэтому вы берёте и переписываете нужный NPM пакет на на c++;
Раз коснулись темы NPM, то другой пример. В NPM миллионы пакетов на любой случай жизни и так бывает, что нецелесообразно тянуть зависимость ради пару десятков строчек кода. 

Когда НЕ стоит изобретать велосипед:

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

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

Худший ответ:
Нужно писать программу так чтобы она была легко читаема для человека. И чтобы другие читающие 
быстро поняли что имелось в виду. Методы против функций - это холивар. В нем нет смысла.
Лучше приведи свой код и попроси сделать code-review.
Вопрос: Экранирование символов при отправке формы POST php?

Лучший ответ:
Это какая-то чушь. Сам РНР ничего не экранирует.
И никаких "универсальных" способов экранирования нет. Про 7.3 и минус тоже какая-то глупость.

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

Худший ответ:
Чтобы что-то экранировать нужно использовать знак "\"
\\ - экранируем "\"
\- - экранируем "-"
Вопрос: Как красиво визуализировать локальную фильмотеку windows?

Лучший ответ:
Я бы посоветовал kodi. Лучший мультимедийный центр, правда требует настройки.

Худший ответ:
Про Kodi уже сказали. Помимо него есть еще полностью бесплатный Jellyfin. Кроссплатформенный.
Вопрос: Как раздать интернет на LAN порту?

Лучший ответ:
Вот цитата из описания роутера из интернета: 


Задняя сторона самая интересная. Первым делом на ней мы видим две Wi-Fi антенны. Затем два стандартных телефонных разъема - RJ11, четыре разъема LAN - RJ45, в режиме роутера работают LAN1 и LAN2, два других работают в режиме бриджа.
Если у абонента нет услуг iDPhone и iDTV LAN3 и LAN4 отключены.


Так что, да - это конфигурация роутера.

Худший ответ:
Вот цитата из описания роутера из интернета: 


Задняя сторона самая интересная. Первым делом на ней мы видим две Wi-Fi антенны. Затем два стандартных телефонных разъема - RJ11, четыре разъема LAN - RJ45, в режиме роутера работают LAN1 и LAN2, два других работают в режиме бриджа.
Если у абонента нет услуг iDPhone и iDTV LAN3 и LAN4 отключены.


Так что, да - это конфигурация роутера.
Вопрос: Как реализовать отправку данных в БД с форм выведенных циклом?

Лучший ответ:
Как мне передавать данные из форм, которые выведены циклом ?
Они будут передаваться на эту же страницу методом POST при нажатии на кнопку "сохранить".

В цикле -> в форме -> перед кнопкой "сохранить" можно создать <input type="hidden" name="sub_id"  value="ТУТ ID подразделения" />
И при получении на сервере, в $_POST['sub_id'] будет айдишник подразделения.
<input required type="text"> где прописывается количество единиц техники, нужно тоже как-то клеймить 
например можно добавить id , чтобы на сервере понимать для какой техники прописано количество

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

<?php
foreach ($resselecttech as $restech) { ?>
	<td><input required type="text" name="values[<?php echo $ressub->name_subdivision; ?>][<?php echo $restech->type;?>]"><span>единиц техники</span></td>
<?php
} ?>

замените этим куском кусок который отвечает за вывод инпута. при сохранении формы вы получите многомерный массив в $_POST['values'] такой структуры:

[
	'ОУР' => [
		'ИБП' => 5, // где 5 это значение из инпута
		'КМТ А3' => ...,
		...
	],
	'ОЭБ и ПК' => [
		'ИБП' => ...,
		'КМТ А3' => ...,
		...
	],
	...	
]

P.S. естественно имена лучше заменить на id подразделений для более удобной работы
Вопрос: Как распарсить время для понимания JS?

Лучший ответ:
const date = new Date(str.replace(/[\d.]+/, m => m.split('.').reverse().join('-')));
или

const date = new Date(str.replace(/(\d+)\.(\d+)\.(\d+)/, '$3-$2-$1'));
или

const [ day, month, year, hours, minutes, seconds ] = str.split(/\D/);
const date = new Date(year, month - 1, day, hours, minutes, seconds);
или (day.js):

const date = dayjs(str, 'DD.MM.YYYY HH:mm:ss').toDate();

Худший ответ:
Использовать moment
Вопрос: Является ли чтение Readonly свойств объекта нарушением инкапсуляции?

Лучший ответ:
Давайте представим объект и DTO которым пользуется объект. Если объект возаращает DTO как представление самого себя, например методом showStruct(): DTO будет ли это являться нарушением инкапсуляции?
Я понял ваш вопрос. Смотрите. Философия ООП базируется на том что все действия с объектом должны быть санционированы языком или средой выполнения. Например в Java есть техника рефлексии которая позволяет много чего делать например менять приватные поля. Это часто используется в Mock/Mockito и я часто про это говорю. Мокито - фактически взламывает инкапсуляцию. Но это всех устраивает потому-что "тестить нуна!".
В Java также есть технология сериализации-десериализации которая обеспечивает сохранения состояния объектов на диск или передачу их в сеть для дальнейшей работы (например пользовательская сессия прыгает между нодами кластера). И это действие (сериализация) полностью санкционировано средой и языком. Всех это устраивает. Хотя с моей точки зрения - этож капец взлом. Но зато в Java вы никогда не сделаете down-casting объекта одного типа к типу другого если иерархия этого не позволяет. Этого делать нельзя ... ну потому что это точняк нарушение ООП. И нельзя найти никакой санкции на такое странное действие. Вот в языке С++ например вы можете жонглируя указателями взглянуть в любую память своего процесса или потока и прочитать любой байт или word/dword. Что можно сделать в PHP из подобного? Я не знаю. Но новерное что в PHP много механик которые не позволяют делать хакинг когда. Вот. Поэтому ООП и считается философией программирования а вовсе не тюрьмой. Вобщем код надо писать по правилам языка и среды а не "хачить". И лучшие практики ООП они как раз стоят именно на этой идее. Кроме того - не существует единого ООП - а есть просто разные его реализации в разных языках. Короче вы не найдете самого-самого-ООП-шного языка.

А вообще если это опнсорц - ну сделайте себе форк и меняйте что хотите в исходниках. 

И Еще пример. если объект не будет возвращать никаких данных о себе, то тогда как придерживаться принципа OpenClosed?
Про что вообще OpenClosed? Это - расширенная трактовка ООП в части SOLID (вторая буква О).
Означает что если вы хотите внести изменение в класс - то вы его наследуете. Например
class BMWX5 extends BMW { .. }
Мы ничего не нарушили. Мы не меняли свойств BMW. Мы создали новый класс BMWX5 где есть изменные методы. Оригинальный BMW мы не трогали. Все - в правовом поле.

Худший ответ:
showStruct(): DTO будет ли это являться нарушением инкапсуляции? нет.

showStruct() максимум, что может вывести - это свойства объекта скопом, те в массиве. Это все равно, что пройтись по всем его геттерам и получить все свойства объекта DTO. Ибо по определению DTO тупой и пустой как барабан, вся его суть - получить данные откуда-либо, быть заполненным и передать этот DTO в другой слой ПО, который гарантированно получить все необходимые свойства, указанные в объекте.
Вопрос: Возможно ли отменить форматирование диска?

Лучший ответ:
r.saver в помощь

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

Если не получится - то прогами для восст скорее всего почти всё вытащите
Вопрос: Отфильтровать массив объектов, в которых есть вложенный массив?

Лучший ответ:
Давайте представим, что skills у вас не массив, а булевое поле knows_js. Как можно получить такие элементы стандартными средствами языка?
Когда решите эту задачу, нужно решить вторую — как получить наличие или отсутствие элемента в массиве (js в skills) в виде булевого значения?
Ну и наконец — скомбинируйте ответы на два этих элементарных вопроса, чтобы получить рабочий код. Примерно так работает программирование — мы не заучиваем ответы на все возможные варианты задач, а учимся сложные задачи декомпозировать до простых, решение которых нам известно.

Худший ответ:
Похоже на учебное задание. На jQuery такую фильтрацию можно сделать так:
$(arrObjects).filter(function(n, e) { return e.skills.includes('js'); });
Если нужен на выходе обычный массив, то так:
$.makeArray($(arrObjects).filter(function(n, e) { return e.skills.includes('js'); }));
Вопрос: Как сформировать SQL (для MySQL) запрос по нахождению наиболее похожего профиля с множеством полей-флагов?

Лучший ответ:
Можно предложить такое решение:
select * 
from users
order by ((flag1=1)*1 + (flag2=0)*1 + (flag3=1)*1 +(flag4=0)*1) desc
;

MariaDB fiddle

При сортировке используем сравнение параметров с желаемым профилем. При необходимости можно использовать различные коэффициенты для различных параметров

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

https://stackoverflow.com/questions/4777070/hammin...
Вопрос: Как определить как сделан эффект вращения блока на этом сайте (примеры работ)?

Лучший ответ:
https://codepen.io/topicstarter/pen/RwgLeXW - если с  js не дружим то вот этим плагином можно тоже самое сделать

тоже самое без всяких плагинов: https://codepen.io/jsonc/pen/zYKgZgM?editors=0010

здесь расказывают и показывают как это делается: https://stackoverflow.com/questions/55326161/3d-mo...

Худший ответ:
https://codepen.io/topicstarter/pen/RwgLeXW - если с  js не дружим то вот этим плагином можно тоже самое сделать

тоже самое без всяких плагинов: https://codepen.io/jsonc/pen/zYKgZgM?editors=0010

здесь расказывают и показывают как это делается: https://stackoverflow.com/questions/55326161/3d-mo...
Вопрос: Как исправить регулярное выражение для поиска номера телефона?

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

C#: https://github.com/twcclegg/libphonenumber-csharp
Go: https://github.com/nyaruka/phonenumbers
Objective-c: https://github.com/iziz/libPhoneNumber-iOS
PHP: https://github.com/giggsey/libphonenumber-for-php
PostgreSQL in-database types: https://github.com/blm768/pg-libphonenumber
Python: https://github.com/daviddrysdale/python-phonenumbers
Ruby: https://github.com/mobi/telephone_number
Rust: https://github.com/1aim/rust-phonenumber
Erlang: https://github.com/marinakr/libphonenumber_erlang
Clojure: https://github.com/randomseed-io/phone-number
R: https://github.com/socialresearchcentre/dialr/

Худший ответ:
в регесп можно делать тоже условия и добавлять и или и не но не и тд. 
вот тебе самый простой способ, по факту несколько масок в одной регулярке.
https://regex101.com/r/DnsKfE/1
но сдается мне нужно вам выделить не просто эти телефоны но и привести их к  подобию
Праильно ли я понимаю
+7 или +3 или 8 ( есть ли еще другие ) ?
убираем сразу пробел ? 
убираем сразу скобки ?
Если не с +7|8|+3|3 то телфон не верный ? или он не верный если цифр будет на 1 меньше, огда просо отсекаем +? 
В общем составьте схемку всей логики я вам напишу регулярку.  сразу чтоб в $0 выдавался унифицированный формат.
Опять же какие коды городов допустимы ? 
ну или худобы стран
Хотя конечно если вкрлючать прям все доступные кгды  это будет муторно, 
А вот если вы знаете что это точно телеон и в этом элементе массива именно она то можно  уже валидировать по длинне  и пара варианто начала, всю мелочь типа пробелов тире отрезать и посчитать колчество от этого и валидировать.
Вопрос: Почему возвращается true а не 5?

Лучший ответ:
Потому что || - это ленивая операция и приоритет у неё ниже, чем у &&.
=> Сначала будет вычислено выражение 5 === 5 && 3 > 1, которое имеет значение true
А раз оно true, то и правую часть 5 вычислять не нужно.

Худший ответ:
Потому что результат вызова консоль лога это не его аргумент(ы)
Вопрос: Почему json_encode превращает число в строку?

Лучший ответ:
Потому что из PDO вернулась строка.
https://qna.habr.com/q/968945

Худший ответ:
Также вы можете использовать json_encode с флагом JSON_NUMERIC_CHECK

echo json_encode($result,  JSON_NUMERIC_CHECK);

json_encode online
Вопрос: Как отслеживать посетителей на сайте, которые перешли из мессенджеров?

Лучший ответ:
document.referer - на клиентской стороне.
На серверной стороне - HTTP-заголовок Referer.
А вообще - нет, способа нет, так как ссылки во внешних приложениях не дают Referer. 
Есть обходные пути.
1. Включать в ссылку какой-то referer ID, тогда можно будет отследить, кто перешел на сайте по этой конкретной ссылке.
2. Если мессенджер использует страницу с предупреждением о переходе по ссылке (как Steam, например), то тогда переход будет с этой страницы, и его можно будет отследить. Но это зависит от мессенджера.

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

Добавьте на страницы сайта кнопки "Поделиться", и обяжите тех, кто занимается SMM, ими пользоваться.
Вопрос: Что можно использовать от фреймворка в DDD?

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

Что касается DDD при работе с Yii2 и моделей - идеально было бы разделить приложение на различные слои, полностью отделив из средних слоев любые зависимости Yii2, но модели я бы не стал наделять интерфейсом, в этом плане вам поможет создание своего репозитория, в котором можете спрятать любые методы на выборки при помощи юшных моделей, а наружу отдавать уже самостоятельно смапленные Entity и уже их наделять интерфейсами и использовать дальше, но это именно для выборок конкретных записей. Если вам необходимо выбрать несколько записей - почти аналогично используюте Entity, создаете свою кастомную коллекцию которая имплементирует встроенные интерфейсы Iterator и Countable. Для их разделения можно использовать базовый класс как родителя, а дальше создавать нужный класс коллекции для смапленных Entity.

Но вся ваша идеальная задумка DDD с Yii2 легко развалится при использовании ActiveRecord и базовых моделей - в них сразу пихается и валидация, и каст, и обработка поведений на сохранение/обновление/удаление, так еще в старых проектах еще и триггеры навешивают часто. Может стоит подумать, нужен ли вам вообще тут DDD? Если это сделано с целью отвязаться от фреймворка в любой момент - то используйте для моделей Entity, Collection и выносите сразу все в репозиторий, легко сможете мигрироваться на тот же симфони. Безболезненного перехода не бывает и так или иначе что-то да придется переписывать, но все сможете это сделать просто поменяв код ваших репозиториев и контроллеров с реквестами.

Худший ответ:
DDD это про командную работу больше чем про грограммирование. yii2 устарел, модули для 3ки уже вроде как доступны и даже не глючат)
Вопрос: Чем плохо использование статических функций в проекте для архитектуры?

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

Объекты инкапсулируют состояние и поведение, а статистическая функция лишина этого.

Что сказано в документации PHP о статических функциях: 

Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса. К ним также можно получить доступ статически в созданном экземпляре объекта класса. 
Так как статические методы вызываются без создания экземпляра класса, то псевдопеременная $this недоступна внутри статических методов. Поэтому важная причина, по которой Вам стоит избегать статических методов, заключается в том, что их использование теряет одно из преимуществ объектов. Объекты предназначены для инкапсуляции данных. Это предотвращает появление неожиданных побочных эффектов, которые позволяют избежать ошибок, улучшает тестирование. Статические методы не имеют инкапсулированных данных и поэтому не получают этого преимущества.

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

Что касаемо именно выборки из базы, то тут как минимум будет зависимость на одном хранилище. Что если вы сейчас хотите забирать данные из Mysql, а завтра из PosgreSQL. В вашем случае будет очень сложно перейти от одного хранилища к другому, но если бы вы использовали объект Repository, то вы бы просто написали новую реализацию и заменили бы через DI контейнер.

Худший ответ:
Плохо только не знание того, когда какой паттерн использовать. Вы - не знаете.
Вопрос: Ввожу 8 9 10 min() выбирает 9 max() 10. max — min = -1. Как так?

Лучший ответ:
Потому что нужно почитать документацию на функцию max
Если max\min передать строки - он найдет строку(!) подходящую лексиграфически, то есть в алфавитном порядке.
Строка '10' < '9', так  как 1 идет раньше 9.

Не надо переопределять встроенные имена. Считайте их зарезервированными и недоступными для именования переменных
max = max(s)
min = min(s)

Худший ответ:
Потому что в s - строки, а не числа, сортировка их лексикографическая.
s = [int(n) for n in s.split()]
Вопрос: В чëм смысл стресс-тестов для видеокарт?

Лучший ответ:
Должна ли ЛЮБАЯ исправная видяха выдерживать тест?
Да
Опасно ли проводить тест дольше получаса?
Можно, но лучше не надо. Хотя ничего страшного не будет
И почему бывают ситуации, что после применения того же бублика комп вырубается, и при следующем включении весь экран в артефактах (или вообще нет включения)?
Потому что видеокарта была неисправна

Худший ответ:
Если железо не разогнано (и не изменены его заводские параметры вольтажа и стратегии поведения системы охлаждения)! то стресс тесты никак не должны повредить рабочее железо. 

Стресс тесты выявят как минимум проблемы с системой питания и охлаждения.

Если что то глючит и тем более подвисает комп, то значит какой то компонент в системе - неисправен (это может быть не только видеокарта, но к примеру блок питания).
Вопрос: Есть ли аналог ad для linux?

Лучший ответ:
ldap не подходит?
можно попробовать сервак на Zentyal...

Худший ответ:
У них есть продукт https://astralinux.ru/products/ald-pro
Вопрос: Как вычесть у одного пользователя число и добавить его другому?

Лучший ответ:
Лучше делать всё в одном запросе:
UPDATE users u1
CROSS JOIN users u2
SET u1.amount = u1.amount - $summa,
    u2.amount = u2.amount + $summa
WHERE u1.id = $client
  AND u2.id = $shop;

Во-первых, один запрос - проще. Пусть даже сам запрос и сложнее.

Во-вторых, если, например, в структуре таблицы имеется ограничение CHECK (amount >= 0), а сумма такова, что у клиента баланс уйдёт в минус - в таком случае ни одна из записей не будет изменена.

Худший ответ:
Последний раз подобное делал вложенным запросом. То есть текущая сумма вытаскивалась селектом грубо говоря так
<?php
 $mysqli->query("UPDATE users SET amount = (SELECT amount FROM users WHERE id = '$client') - '$summa'";
 $mysqli->query("UPDATE users SET amount = '',  amount = (SELECT amount FROM users WHERE id = '$shop') + '$summa'";
?>

Возможно это не совсем правильно но у меня на тот момент по другому не завелось, да и искал я не долго
Вопрос: Как делать сео для react приложений?

Лучший ответ:
Ssr все решает

Худший ответ:
На вопрос в двух словах не ответишь, потому что слишком много нюансов. Читайте про Javascript SEO и продвижение SPA. Но да, в основном роботам отдают пререндер, иначе нечего ему на сайте делать. Даже если гуглобот JS может рендерить, он не делает этого сразу, ему нужен "сырой" HTML. Про Яндекс ужо молчу, они сейчас выкатывают обновление по обработке JS - но пока непонятно, в каких объёмах, и там всё равно всё на апдейтах.
Вопрос: Как миддлу-бэку с хорошим знанием английского получить разрешение на работу в США?

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

Худший ответ:
О я бы посоветовал бы вам сервис outtalent, они помогают с трудоустройством в США ребятам из стран СНГ. Я сам пробовал подвать но моих знаний англйиского не хватило(
Вопрос: Есть блок с фото и бордером как добавить с помощью after и before такие закругление угли?

Лучший ответ:
На выбор, с псевдо и абсолютом или без него.
https://jsfiddle.net/rchpmf0y/
https://jsfiddle.net/ude1w987/

А ещё лучше гридами: https://jsfiddle.net/4smtphxz/

Худший ответ:
На выбор, с псевдо и абсолютом или без него.
https://jsfiddle.net/rchpmf0y/
https://jsfiddle.net/ude1w987/

А ещё лучше гридами: https://jsfiddle.net/4smtphxz/
Вопрос: Чем оттереть пятно с ноутбука?

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

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

Худший ответ:
Санитайзер в помощь, у меня все нормально. или просто намочи микрофибровую тряпочку и протри.