Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: От чего зависит плавность работы анимации на сайте?

Лучший ответ:
Вам необходимость использовать Timeline в Chrome DevTools для профилирования производительности анимаций и не только.
Хотите знать основы оптимизации рендеринга - вам сюда https://www.udacity.com/course/browser-rendering-o...
Причин плохой оптимизации может быть вагон и маленькая тележка. У вас там могут огромные элементы анимироваться с помощью top/left вместо transform: translate, у вас при каждом скролле может идти repaint огромных картинок, забирая по 60-100мс на каждый шаг и так далее. Скорее всего причины крайне простые и связаны с использованием древних и убогих методик для анимаций, аля jQuery.animate (который до 3й версии юзает setTimeout вместо requestAnimationFrame под капотом).

Худший ответ:
Перенесите всю dom-анимацию в css, на js анимации быть не должно в принципе (за исключением canvas)
Вопрос: Как записать условие?

Лучший ответ:
в условии попробуй get_field использовать

Худший ответ:
Можно еще проще сделать...
1) Как вам подсказали использовать get_field() +
2)
замените:the_field('slider-txt-1') != '' || the_field('slider-txt-2') != ''
на:get_field('slider-txt-1') || get_field('slider-txt-2')
Вопрос: Что нужно требовать от компании-разработчика?

Лучший ответ:
Все сугубое imho:1. Что должна предоставить нам компания, кроме работающего приложения, чтобы в дальнейшем штатные разработчики без труда подхватили проект?
Смена команды разработки - всегда боль.
Если это резкая смена команды - то либо это заканчивается переписыванием 70-80% кода, либо закладывайте ~30% потраченных на разработку ресурсов на вхождение новой команды в курс дела.
На мой взгляд есть 2 способа этого избежать:
a) покупка изначальной команды в штат
b) участие ваших штатных разработчиков в проекте изначально (но мало кто из аутсорсеров на это пойдет)
ну а предоставить собственно должны исходники без обфускации, с читаемыми названиями переменных, форматированием согласно принятым стандартам языка (для php например это PSR), документацию.2. Какое качество кода должно быть, есть ли какие-то стандарты качества, которые нужно отразить в договоре?
Отразить можно что угодно, и даже при желании попробовать проконтролировать можно - это снимет риски что исходный код не реюзабелен, но не снимет затраты на его изучение. По хорошему - попросить у аутсорсера какие-то внутренние документы регламентирующие их качество кода, показать это своей команде разработки, если все устраивает - включить в договор.3. Как относятся компании к договору NDA?
Относится отлично, но NDA в РФ не работает по факту. Хотя все их очень любят подписывать по поводу и без.4. Какую документацию по проекту мы должны получить от разработчика?
Ту которую хотят ваши разработчики. Для веб-приложения на мой взгляд программа минимум это
а) ТЗ по которому все пишется
b) описание внешних и внутренних компонент приложения, что они делают и как взаимодействуют
c) описание структуры БД, как объектов со связями, так и полей. Если где-то денормализация - обоснование её наличия и описание логики.
d) описание endpoint проекта если есть (апи, итд)5. Нужно ли прописать в договоре пункт про бэкдоры, работает ли это на судебном уровнеВ РФ imho нет.

Худший ответ:
1)  документацию на код. лично я за это беру +10%
2) какие отразите в техзадании , такие и будут. 
3) если захотят украсть, то, поверьте, никакой NDA никого не остановит, ибо как доказывать будете ?
4) ту которую пропишите в техзадании
5) если исполнитель передаст вам код подписанный электроподписью и вы сможете доказать в суде что бэкдор умышленно внедрен  - то и без договора
Вопрос: Как заменить оперативную память?

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

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

Лучший ответ:
Есть инструмент doiuse. Интегрируете его в свою систему сборки, задаете список браузеров и он говорит какие свойства в вашем CSS не поддерживаются в этих браузерах. Технически он проверяет это как раз по базе caniuse.
Но также не стоит забывать, что есть баги в браузерах, которые так просто не проверить. Особенно голову морочат IE и мобильный сафари. Здесь только опытным путем можно находить проблемы. Но раз уж вы используете модный flex - советую сразу посмотреть на flexbugs.

Худший ответ:
Есть еще такой сервис проверки страниц на предмет отображения браузерами: browserstack.com/.
Вопрос: Есть ли разница между заданием функции через var или без?

Лучший ответ:
//Такие функции браузер считывает перед выполнение скрипта
function square(num) {
}

//Такие - только когда встречает первое использование 
var square = function(num) {
}
Вот как это проверить:alert(square(5)) //ок, функция была загружена перед выполнением скрипта
function square(num) {
   return num*num;
}

alert(sum(5)) //error - хз, че за функция, не встречал еще такой
var sum = function(num) {
   return num*num;
}

UPD: обидно, когда ответ оформляешь красиво, а уже ответили ((
UPD2: Ахах) Спасибо!)

Худший ответ:
Создание функции через присваивание переменной называется "Function Expression", второй способ "Function Declaration", можно выделить пожалуй одно основное отличие.
Функция, объявленная как Function Declaration, создается интерпретатором до выполнения кода. То есть если у вас Function Declaration и вы вызываете функцию до того как она объявляется в коде, всё будет замечательно работать. Если у вас Function Expression, а вы пытаетесь её вызывать до того, как выполнилось присваивание, получите ошибку. Подробнее можно прочитать тут
Вопрос: Влияет ли на что либо количество параметров в конструкторе?

Лучший ответ:
нормально. только 
1) если аргумент array то пусть она по дефолту будет пустым массивом а не null
2) проверки на !empty в вашем случае бесполезны, проще сразу $this->template = $template, или через сеттеры

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

Лучший ответ:
Здравствуйте!
Прежде всего давайте уточним - скачали шаблон или тему?
Т.е. на обычном языке шаблон это набор html, css, js файлов. На ВП шаблон это лишь рнр файл, часть составляющей темы.
Если тема готовая, то есть вы можете установить ее в ВП, то можно по разному настраивать ее. Например, кастомные поля (плагин ACF, Carbon Fields), фреймворки (Redux Framework), визуальные редакторы (WPBakery Visual Composer, Visual Composer Premium, Elementor)
А если у вас именно шаблон, то для начала нужно создать из нее тему. 
https://codex.wordpress.org/Theme_Development

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

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

Худший ответ:
Опять же зависит от задачи и если ты думаешь что пользователю будет удобно такое количество контроллеров то делай так.
Вопрос: За что отвечают и для чего нужны ldap, kerberos, winbind и sssd?

Лучший ответ:
LDAP - lightweight directory access protocol, протокол облегченного доступа к каталогу, а также одноименная служба. ОБеспечивает доступ к специализированной БД, в которой может хранится все, что угодно, но обычно хранятся учетные данные  пользователей, колмпьютеров и т.д. Active Directory - суть LDAP, к ней можно подцепиться обычным LDAP-бразуером и даже скриптами.Kerberos - сетевой протокол аутентификации. Очень широко используется как в AD, так и в прочих сервисах, которые могут быть как с AD связанными, так и нет. Для аутентификации в AD его широко используют squid и apache. Практически необходим для sambawinbind - локальная копия AD, формируемая samba для целей аутентификации доменных пользователей. Нужен для того, чтобы можно было использовать учетные записи пользователей домена точно таким же образом, как и локальные учетные записи - раздавать права, ограничивать доступ, создавать домашки. Обязательный компонент почтового сервера.sssd - альтернатива winbind, не требующая наличия samba, достаточно будет adcli. Делает все то же самое, только не нужно устанавливать samba, которая в последнее время толста невероятно.

Худший ответ:
для чего нужны и за что отвечают: ldap, kerberos , winbind,sssd ? AAA (Authentication Authorization and Accounting) в той или иной степени.
Вопрос: Можно ли быть уверенным в безопасности веб приложения?

Лучший ответ:
В полной безопасности приложение существует только на выключенном сервере. Вот тебе пример кода, от которого не спасёт ничто, и даже медицина тут бессильна (пробовали лечить т-щей и электричеством, и холодными компрессами, но тщетно):eval( $_GET[ 'stupid' ] );
Смех-смехом, но подобных (или загруженных позднее) закладок вот этими руками выковыряно немало. Так что регулярно читайте CVE, публикуйте фиксы, репортите баги, и ни в коем случае не меняйте Wordpress на что-нить более толковое, а то оставите меня без половины зарплаты.

Худший ответ:
Нет, не спасут. Чем проще приложение, тем меньше шансов взлома, однако если есть ошибки, то опытный человек взломает, вопрос через сколько? День, месяц? Некоторые ошибки находят спустя 20 лет после выхода продукта на рынок.
Вопрос: Best practics ООП?

Лучший ответ:
2й вариант без сомнений единственно верный.

Худший ответ:
Первый вариант чище.
Вопрос: На сколько серверов дается лицензия IPSmanager Lite?

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

Худший ответ:
п.1 Лицензия ISPmanager привязывется к IP адресу.
п.2 >Сколько установок я могу сделать?
Сколько угодно, см п.1
Вопрос: Структура самописной CMS для всего (ага)?

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

Худший ответ:
Это объявление о вакансии консультанта?
Вопрос: А нет для Линукса тулзы, автоматически убивающей процесс, потреблящий память больше заданного лимита?

Лучший ответ:
Есть OOM killer.

Худший ответ:
Ну, вообще-то всегда был старый добрый ulimit https://www.opennet.ru/base/sys/ulimit_mc.txt.html
И файло к нему  /etc/security/limits.conf
Вопрос: Как получить данные из local storage браузера?

Лучший ответ:
C# - это серверный язык, он работает на бэкенде и генерирует страницу и прочее. local storage - это локальное хранилище данных в браузере, а в последнем работает JS - в данном случае на фронтенде. Если серверу надо получить данные из хранилища, то клиентский код должен забрать их и передать серверу через форму/ajax и прочее.

Худший ответ:
"А если у меня клиентское приложение просто. Запросы через нттр рекуэтст"
В каком смысле - клиентское? Причем здесь HTTP-запросы, какое они имеют отношение к тому сайту?
У вас просто отдельное десктопное приложение, и нужно записать/считать из localstorage браузера, который установлен на том же ПК?
Тогда так и надо ставить вопрос.
Ну, как-то же на диске эти данные хранятся.
Значит, HEX-редактор... Гугель... Изучение исходников браузера... И т.д.
Я однажды копал какие-то подобные данные браузеров, для любопытства. В принципе, осилил бы. Но практического применения я не вижу, поэтому делать не стал.
Вопрос: Как сделать (и есть ли готовая тулза) преобразование 2д-карты в массив строк?

Лучший ответ:
Есть такой редактор tiled
умеет сохранять в json и xml форматах

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

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

Худший ответ:
1. Использовать border-image с gradient и анимировать его.
2. Использовать блоки :before и :after. У основного блока бордеры заданы так - левый и верхний серые, правый и нижний нужного вам цвета. Блок :before с нулевыми размерами, position: absolute в левый верхний угол, верхний и левый бордеры нужного вам цвета, блок :after в правый нижний угол, ширина и высота по родительскому блоку, цвет бордера серый.
При наведении анимируете размеры блока :before до 100% родительского блока, блока :after до 0. Задержку анимации блока :after делаете такой, чтобы она начинала срабатывать сразу после завершения анимации :before.
Получится, что блок :before расширяясь зальет бордером нужного цвета левую и правую стороны, а блок :after сжимаясь уберет серый бордер и откроет лежащий внизу бордер нужного цвета справа и внизу.
Вопрос: Почему не запускается selenium (python) на сервере?

Лучший ответ:
Не могу понять, ты пытаешься exeшник запустить на линуксе?
P.S. Для сервера без монитора нужно эмулировать монитор (xvfb)

Худший ответ:
Чтобы на Linux поставить geckodriver сделайте:
pip install geckodriver
И вы перепутали назначение executable_path, это на самом деле путь к выполняемому файлу браузера, а geckodriver.exe это только драйвер для Selenium, и это видимо версия для Windows.
Возьмите готовый Firefox с Selenium https://github.com/SeleniumHQ/docker-selenium
Если что подскажу как его кушать
Вопрос: Как исключить файлы из коммита?

Лучший ответ:
Сначала нужен gitignore а потом уже файлы.
Временно перемести delete_file_old, коммит, потом можно вновь их добавить.
Можно черезgit rm -r --cached .
git add .
git commit -m ".gitignore"

Худший ответ:
Если git logпоказывает файлы, значит вы их уже добавили в репозиторий ранее и нужно удалять их оттуда. Если это было сделано в последнем коммите, то просто
git rm "delete_file_old/*"
git commit --amend
Если добавили в старых коммитах, то через git filter-repo
Вопрос: Почему PHP не создаёт объект из подключаемого файла через функцию?

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

Худший ответ:
Попробуйте$mysqli = new mysqli('localhost', 'user', 'pass', 'database');
заменить на$GLOBALS['mysqli'] = new mysqli('localhost', 'user', 'pass', 'database');
Дело в том, что вы require вызываете внутри функции, и $mysqli создается внутри функции и за ее пределами не существует.
Вопрос: Как вывести 50 нужных записей из базы в миллионы?

Лучший ответ:
Вообщем, то по скорости Limit ничем не отличается (ну почти) от полного SELECT. В вашем случае тормозит именно сортировка. Попробуйте проиндексировать поле по которому будет осуществляться сортировка.

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

Лучший ответ:
Попробуйте заюзать более низкоуровневую библиотеку, на которой базируется connect-multiparty. Там как-раз есть progress :)
https://github.com/andrewrk/node-multipartyvar form = new multiparty.Form();
form.on('progress', function(bytesReceived, bytesExpected) {
   socket.emit('received', (bytesReceived / bytesExpected).toFixed(2) * 100);
});

Худший ответ:
Около года назад выполнял подобную задачу, правда Node была версии 0.12. 
Использовал socket-io.stream и progress-stream, работало прекрасно. Правда у меня стояла задача потоковой передачи файла из браузера одного пользователя, в браузер другого с индикацией прогресса на обеих сторонах. Но думаю вам тоже должно подойти.
Вопрос: Проблемы с Роскомнадзором, нужен IT-юрист?

Лучший ответ:
Да "во славу Дарвина", кто просит пользоваться их хостингом?
Переезжаете на хостинг в Голлиндию/Германию (ищите тут vds.menu), ставите DNS от CloudFlare и не обращаете внимания на РКН.

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

Лучший ответ:
1. Вскрыть  mp-3 плеер.
2. Переписать названия микросхем.
3. Найти даташиты на данные микросхемы. Определить, что из них контроллер.
4. Проверить возможность заливки/получения прошивки с mp3-плеера. Возможности защиты (к примеру - проверка подписанных контрольных сумм прошивки, перегораемые перемычки битов защиты)
5. В соотвествии с системой команд контроллера написать прошивку, либо если схема позволяет - слить прошивку, дизассемблировать дизассемблером для данного микроконтроллера, и дополнить своим кодом, затем обратно скомпилировать в бинарный образ для прошивки.
6. Если есть возможность - отдебажить код в эмуляторе. 
7. Залить прошивку обратно.
8. Профит

Худший ответ:
Ну тут два варианта:
1) либо у плеера должна быть возможность кастомизации штатными средствами
2) либо открытый исходный код
Просто так перепрограммировать не опенсорсный проект вам никто не даст)
Вопрос: Как правильно просить отзыв у клиента?

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

Худший ответ:
Можете оставить отзыв ?
Вопрос: При попытке создать пользовательскую функцию в MySQL 8.0 возникает ошибка 1418. На сервере MySQL 5.6 создается без проблем. Почему?

Лучший ответ:
Собственно, ответ на ваш вопрос заключён в тексте ошибки.
Вы используете бинарные логи, которые содержат только последовательность выполняемых запросов. Поскольку ваша функция не детерминирована, она при каждом следующем вызове из одного и того же состояния может вернуть разные значения, соответственно MySQL не может гарантировать точную репликацию и/или восстановление данных из бинарного лога.
https://dev.mysql.com/doc/refman/5.7/en/stored-pro...

Худший ответ:
попробуйте добавить log_bin_trust_function_creators = 1;reed this
Вопрос: Какую Windows поставить на старый ПК?

Лучший ответ:
добавьте 4 Гб озу, и бюджетный ssd у вас и десятка залетает на этом железе.

Худший ответ:
ставьте 32битные версии 7-ки или 10-ки.
Вообще, по производительности должно быть аналогично что 7 что 10, но тут зависит от железа.
Где то у меня быстрее 7-ка шла на старом, где-то 10ка.
Вопрос: Стоит ли в начале 2019 года использовать i7-2600?

Лучший ответ:
Замена смысл скорее всего имеет, и не требует больших затрат.
Будет дешевле взять какой-нибудь Xeon E3-1245 v2 у китайцев, чем i7-2600.

Худший ответ:
P.S. Цены кусаются на новое железо, хотел максимально бюджетно и с максимальным КПД обойтись
Можно взять связку Ryzen 5 2600 (~11500 руб) + мать на B350 (~5000) +DDR4 x2 (~10к) в 25к руб можно уложиться.
Вопрос: Возможно ли средствами AD/GPO блокировать сайты?

Лучший ответ:
Через GPO можно управлять встроенным фаерволом. Но лучше конечно эту задачу решать на пограничном устройстве.

Худший ответ:
Как вариант через политику можно добавить сайты в запрещенную зону. Пример можно посмотреть здесь.
Вопрос: Как сделать if для текста в JS?

Лучший ответ:
let str = 'текст';
//...
if (str === 'текст') {
    document.write(str);
} else {
    //Делаем что-то другое
}

Худший ответ:
let str = 'текст';
//...
if (str === 'текст') {
    document.write(str);
} else {
    //Делаем что-то другое
}
Вопрос: Почему запрос возвращает count(*) = 3?

Лучший ответ:
Потому что элемента -- три.

Худший ответ:
Так разве не должно бьіть 1? Т.к. GROUP BY   `poll_id`,   `user_id` равно 1.
Вопрос: Этапы создания приложения (для не программиста)?

Лучший ответ:
Евгений, я не хочу Вас огорчить, но как правильно написали выше,  идея не стоит ничего
Если Вы запускаете Ваш проект успешно - через 2, максимум 3 недели начинают появляться его кривые(и не очень кривые) клоны. Почитайте историю призмы из последнего. А там таки есть сложная технология внутри (условный фрилансер Вам это не напишет).
Что бы выжить и успешно развиться Вам нужно
а) Иметь не отчуждаемое и не копируемое преимущество. Им может быть технология, им может быть аудитория, им может быть эксклюзивное партнерство с кем то - итд итп. Но без этого - никак.
b) Иметь четкий план развития хотя бы на пару лет (и не бояться его корректировать)

Худший ответ:
Недостаточно лишь хорошей идеи. Нужна ещё удачная, продуманная в деталях реализация. Нужен как минимум, брейнсторминг вместе с разработчиком и экспертом по UX (оказывается тоже важно).
Если нужно ещё хранить какие-то данные вне мобильника, то нужно ещё продумывать веб сервис и вкладывать в построение инфраструктуры.
Вопрос: Можно ли во vuex писать mutation через Object.assign?

Лучший ответ:
Можно.

Только разберитесь, что это за штука такая, Object.assign, что делает. А то вы явно чего-то не до конца понимаете, судя по показанному коду. Ну и имейте в виду, что если какое-то из свойств payload отсутствует в стейте, то после добавления оно не будет реактивным.

Худший ответ:
Можно.

Только разберитесь, что это за штука такая, Object.assign, что делает. А то вы явно чего-то не до конца понимаете, судя по показанному коду. Ну и имейте в виду, что если какое-то из свойств payload отсутствует в стейте, то после добавления оно не будет реактивным.
Вопрос: Взломан ubuntu сервер. Какие действия стоит предпринимать?

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

Худший ответ:
Помимо ssh могут быть другие уязвимые сервисы - ftp, mysql, munin.
Также уязвимости могут быть в CMS или коде веб-приложения.
Если развернуть уязвимое приложение с нуля, то дыры из него не исчезнут и через определенное время сайт снова будет взломан. Для того, чтобы найти изначальную проблему можешь воспользоваться сканерами уязвимостей.Metascan, Acunetix, Qualys.
Вопрос: Есть краткая схема работы яндекс кассы?

Лучший ответ:
В своем проекте использую 1 класс, который отрабатывает checkOrder (проверку актуальности заказа) и paymentAviso (обработка самой оплаты). Ответ одинаковый в обоих случаях (отличается лишь названием тэга paymentAvisoResponse, checkOrderResponse), проверки тоже одинаковые. На отмену оплаты можно забить, так как она актуальна только если оплата идет в кредит, но для этого нужно передавать дополнительные поля, и какие то еще заморочки. Если у вас не планируется оплата в кредит, а только за наличку, то можете игнорировать.

Худший ответ:
Всё зависит от схемы подключения.
В случае, если вы подключаетесь по e-mail схеме, то вам лишь придёт письмо на почту с информацией о платеже в случае его успеха.
При подключении по схеме с http-уведомлениями после успеха в процессе платежа вы получите уведомление checkOrder и в случае успеха уведомление paymentAviso. 
Более подробно по шагам и схеме оплаты можно прочитать на портале: https://tech.yandex.ru/money/doc/payment-solution/...