Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как перенести CSS стилей из файлов в аттрибуты HTML элементов?

Лучший ответ:
например инлайнером foundation.zurb.com/emails/inliner-v2.html
https://inliner.cm/
https://www.google.ru/search?q=css+inliner&oq=css+...

Худший ответ:
Кстати, не советую использовать бутстрап для верстки мейлов. Он для того не предназначен. Вот хорошая статья 
webdesign.tutsplus.com/tutorials/creating-a-future...
Где-то там же я скачивал готовый шаблон и его классно использовать в качестве сетки. Я его тестировал в litmus, проблем не обнаружил. Только с каким-то одним почтовиком были траблы, но он малопопулярен и даже в сфере мейловых сервисов у него репутация как у ИЕ6
Вопрос: Bind и call — в чем разница?

Лучший ответ:
но у меня такая же обертка создается и работает через call.Да ну?
Правильно будет так:f.call('test2', 1, 2);

Худший ответ:
call вызывает функцию с заданным контекстом, а bind, по своей сути есть обертка, привязывающая контекст, которую можно передать в функцию. call - позднее связывание, bind - раннее связывание.call-apply-decoratorsbind
Ваш пример c call, без передачи аргументов, как написали уже выше, работать не будет.
Вопрос: Как получить более 50 видео при помощи youtube api v3?

Лучший ответ:
Отвечаю сам себе:function send_req($url) 
	{
	   $ch = curl_init();
		curl_setopt($ch, CURLOPT_USERAGENT,				"Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 		FALSE);
		curl_setopt($ch, CURLOPT_HEADER,				false);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION,		true);
		curl_setopt($ch, CURLOPT_URL,					$url);
		curl_setopt($ch, CURLOPT_REFERER,				$url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,		TRUE);
		$out = curl_exec($ch);
		curl_close($ch);
		return $out;
	}

$url = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=$keyword&type=video&maxResults=50&key=$api_token";
$res = json_decode(send_req($url));
echo "<pre>";
print_r($res);
echo "<hr>";

$pagetoken = $res->nextPageToken;

$url = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=$keyword&type=video&maxResults=50&pageToken=$pagetoken&key=$api_token";
$res = json_decode(send_req($url));
print_r($res);

Худший ответ:
Тут лишнее.
Лишнее подключать библиотеку curl
Работа с api доступна через простой get_contents
Вопрос: Как удалить script src с помощью Pure JS?

Лучший ответ:
Это базовые вещи, которые стыдно спрашивать.let script = document.querySelector(`[src="/page/some.js"]`);
script.parentNode.removeChild(script);

Худший ответ:
Бессмысленное занятие. Скрипт выполняется после загрузки страницы и его удаление не произведет никакого эффекта на результат выполнения.
Вопрос: Можно ли формировать http запросы без помощи curl, sockets и т.д., а, например, с помощью js?

Лучший ответ:
Человек предлагает выполнять запрос из браузера и светить пароль, пусть даже в виде хэша? Возьмите https://github.com/jhaoda/SMSCenter и не мучайтесь.

Худший ответ:
php -  file_get_contents, fopen - т.е. через stream wrappers.
js - на клиентском о таком не слышал, на серверном скорее всего можно, но тут нужна Node.js
Вопрос: В каких случаях уместно использовать position: abolute и relative?

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

Худший ответ:
Можно обойтись без него. Скиньте свою верстку сюда https://jsfiddle.net/, я подскажу.
Вопрос: Как подвинуть блок?

Лучший ответ:
Как вариант https://jsfiddle.net/umc2ns3o/7/UPD: Вариант с псевдоэлементом и order https://jsfiddle.net/umc2ns3o/25/

Худший ответ:
Только для красного задай margin-right:auto; это сдвинет и его, и зеленый влево.
Вопрос: Есть книга-учебник для инженера-программиста, то есть для full-stack разработчика?

Лучший ответ:
Нет. Как и нет четких стандартов для понятий ui/ux Каждый понимает по своему, описывает по своему и т.д. Это самая не стандартизирована и мрачная тема в it.Внимание!!! Далее субъективное мнение:
Наверное потому что такое деление удобно маркетологам, а программистам похрену.
Да сильно помогает крупным компаниям заполнить штат и срубить бабла, но по сути сильно мешает реальной разработке. Так как любой дополнительный ЮЗЕР в команде сильно замедляет процесс. А на UX обычно попадают люди которые понимают только как аббревиатура расшифровывается.
Так что толковых книг не видел. Только бредни маркетологов. Которые, к сожалению сильно оторваны от реального web.
А вот схема у Вас толковая. Откуда взяли?

Худший ответ:
Хороший UI делается следующим образом:
1. Куда только можно, засовывается куча счетчиков, собираются метрики, генерируются отчеты.
2. Интуитивно правится UI, сравнивается что изменилось в отчетах.
3. Пункт 2 повторяется пока есть бюджет, или при наличии изменений не только в отчетах, но и реальной прибыли до тех пор, пока это имеет смысл.
4. Пишется крутая статья на Хабр, "как мы повысили продажи/улучшили бизнес за счет продуманного интерфейса"
profit.
Вопрос: Посоветуете плагин MODX Revo для создания обучающих материалов (курсов)?

Лучший ответ:
Присоединяюсь к ответам Sanes.
Вот вам Гугл разве не помогал? Урок по выводу контента сниппетом, м?

Худший ответ:
Это всё есть из коробки. Для удобства pdoTools поставьте.
Вопрос: Как сделать эмулятор действий мышью на linux/window через php?

Лучший ответ:
Для X11 есть xdotool

Худший ответ:
Selenium нашел решение
Вопрос: Подробнее про блокировки и в laravel в частности?

Лучший ответ:
Вам нужны мьютексы. Можно реализовать разными способами. Но если у вас планируется распределенное приложение, то можно сделать на основе mysql, используя GET_LOCK() и RELEASE_LOCK().
К сожалению, не нашел готового для laravel фреймворка, но можно сделать самому подсмотрев как сделано у других.
Задача добиться выполнения приложения в один поток. Мьютекс можно захватывать перед началом работы экшена и отпускать после выполнения.mysql> SELECT GET_LOCK('name', 10); //первая сессия.
mysql> SELECT GET_LOCK('name', 5) //вторая сессия. будет висеть, пока не истечет таймаут в 10 секунд или пока первая сессия не выпустит SELECT RELEASE_LOCK('name');
Блокировки можно именовать как "controllerName:ActionName". Это значит, что если первый поток взял GET_LOCK("controllerName:ActionName", 10); то второй поток к тому же самому экшену подвиснет и подождет, пока первый поток снимет блокировку. Таким образом, мы добиваемся того, что все запросы к серверу будут выполняться синхронно.
Также, можно воспроизвести состояние гонки и посмотреть, что будет происходить с приложением, без мьютексов и с ними. Этого можно добиться используя curl в терминале:curl -d 'param1=value1&param2=value2' http://mylaravel.app/addBookInfo & curl -d 'param1=value1&param2=value2' http://mylaravel.app/addBookInfo & wait
В итоге к приложению будет отправлено два одновременных запроса.
Также стоит упомянуть нативные сессии, если речь касается PHP. Так как они реализованы с помощью файлов, то один из запросов подвиснет, так как не сможет получить доступ на запись в файл сессии, пока с ним работает другой поток. Это может создать у разработчика ложное впечатление о том, что его код синхронный и соответственно не подвержен состоянию гонки, но это не так. Здесь нужно детальнее изучать код, в каких точках файл сессии блокируется, а в каких точках программы блокировка файла отпускается.

Худший ответ:
Если в используете PostgreSQL, я бы рекомендовал использовать advisory locks (см. https://www.postgresql.org/docs/current/static/exp..., в конце страницы). По сути, это реализация мьютексов на уровне базы данных.
Трейт для PHP, использующий advisory locks, можно посмотреть здесь: https://gist.github.com/dfbag7/75dcd78a33a6a6d8b61... Этот трейт можно подключать к классам моделей. Также см. реализацию scope: https://gist.github.com/dfbag7/75a0a1ca843e5e14258... Код проверялся (и реально используется) в Laravel 4.2.
Вопрос: Кого можно почитать в Twitter веб-разработчику?

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

Худший ответ:
Любой аккаунт. Как разработчика, так и тех, кто постит котиков или еду. 
А вообще, лучше читать pinterest или одноклассников.
Вопрос: Как защитить данные при передаче и хранении в веб-приложении от перехвата/изменения?

Лучший ответ:
Кратко и понятно о JWTПосле первого логина, клиенту возвращается сгенерированный сервером JWT. При каждом следующем запросе, клиент должен передавать JWT установленным API способом (например, через заголовок или как параметр запроса). Сервер декодирует header и payload и проверяет зарезервированные поля. Если все в порядке, по указанному в header алгоритму составляется подпись. Если полученная подпись совпадает с переданной, пользователя авторизуют.
В добавок к этому могу дополнить следующие шаги: мы удостоверились, что пользователь авторизован, и имеем на сервере payload (Это такой объект, в котором содержится все необходимые нам данные: userid и прочие. Формировали мы его тогда, когда генерировали наш JWT и отдавали его клиенту).
Далее делаем все, что душе угодно. К примеру, берем из payload userid пользователя, ищем его в БД, в ней уже смотрим права пользователя, и разрешаем или запрещаем какие-то действия.
Но есть одно но: если кто-то получит secret_key с сервера, считайте, что он получит доступ ко всем аккаунтам приложения.

Худший ответ:
Кратко и понятно о JWTПосле первого логина, клиенту возвращается сгенерированный сервером JWT. При каждом следующем запросе, клиент должен передавать JWT установленным API способом (например, через заголовок или как параметр запроса). Сервер декодирует header и payload и проверяет зарезервированные поля. Если все в порядке, по указанному в header алгоритму составляется подпись. Если полученная подпись совпадает с переданной, пользователя авторизуют.
В добавок к этому могу дополнить следующие шаги: мы удостоверились, что пользователь авторизован, и имеем на сервере payload (Это такой объект, в котором содержится все необходимые нам данные: userid и прочие. Формировали мы его тогда, когда генерировали наш JWT и отдавали его клиенту).
Далее делаем все, что душе угодно. К примеру, берем из payload userid пользователя, ищем его в БД, в ней уже смотрим права пользователя, и разрешаем или запрещаем какие-то действия.
Но есть одно но: если кто-то получит secret_key с сервера, считайте, что он получит доступ ко всем аккаунтам приложения.
Вопрос: Верстка, размеры экрана, размеры окна, увеличение масштаба в ос. Как быть?

Лучший ответ:
Верстать резиново/адаптивно.
Ведь может же на сайт прийти человек, у которого монитор реально 1600? Может. И 1440 может. И ещё куча вариантов.
Верстальщик вообще не должен привязываться к какой-то фиксированной ширине.

Худший ответ:
верстать три макета. для <760, 760..1000, 1000..1280 опционально резиновый 1280+
Вопрос: Что писать в профиле веб дизайнеру на Upwork, чтоб клиенты шли к тебе?

Лучший ответ:
Вам наверное ничего не остаётся кроме чем как смотреть другие удачные профили по вашим скиллам, смотрите на те что 200k earned и $200/hr +
В большинстве случаев, на практике, достаточно найти всего одного заказчика, и с ним постоянно работать удалённо, а изредка брать лёгкие и быстрые мелкие какие попало заработки

Худший ответ:
Google в помощь https://jff.name/poisk-zakaza-ocenka-proekta-na-upwork/
Вопрос: Правильно ли я выбрал язык?

Лучший ответ:
1. программинг-это в основном рутина. особенно в начале карьеры. а у многих и до её окончания. 
это к тому, что надеяться на "выучу Х и буду заниматься интересным" не стоит.
2. толковый программист не ограничивает себя единственным языком. поэтому особо нет никакой разницы какой именно язык учить именно сейчас. учите тот, который показался интересным.
что касается конкретно Java:
- мобильная разработка точно также зажата одной платформой. хотя эта платформа и гораздо шире 1с. 
- в вебе практически не используется (в сравнении с другими языками), а там где используется-кровавый энтерпрайз, в который ещё нужно попасть. 
язык добротный и развитый. но покрыть все сферы на нем-идея так себе.

Худший ответ:
В целом верный выбор. Есть еще альтернативы: .NET и Objective-C. И еще миллион альтернатив. Язык - это инструмент, не более. Java подходит под Ваш круг интересов. Также, как и .Net и Objective-C. И еще миллион альтернатив. Но, как и у любого "мультитула", у Java есть недостаток: многие вещи из вашего круга интересов часто проще реализовывать более узконаправленным инструментарием. 
Java отлично подходит для ведения больших проектов, она прощает ошибки за счет отсутствия ручного управления памятью, в Java8 наконец-то подвезли лямба выражения и некоторый синтаксический сахар. Метапрограммирование, тонны библиотек, инструменты вроде Maven и Gradle позволяют решать поставленные задачи, а не заниматься написанием очередных костылей. Но, опять же, повторюсь, для конкретной сферы более узкоспециализированный инструмент будет более уместным, чем пихание Java куда только можно. 
В общем, ответ сумбурный, в общих чертах выбор правильный, но имеет равноправные альтернативы.
Кстати, подобное у меня спрашивал мой знакомый, тоже 1C-шник. w3bstr?
Вопрос: Как заставить программиста писать код самостоятельно?

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

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

Лучший ответ:
Некоторые люди на сайтах пишут, что "семантический код занимает меньше места". 
тк они для того и создавались чтобы ты классы не задавал. правильно будет сравнивать так:<header></header> || <div class="header"></div>
p.s. и не приплетай сюда БЭМ. это вообще из другого разряда

Худший ответ:
Сомнительная полезность для мифического определения поисковыми системами каких-то там групп контента...ну не знаю, только слышал про такое.
Не сомнительная, а полезность. И не только для ПС.
Вопрос: Возможно ли беспроблемно использовать WD Green жесткие диски с NAS?

Лучший ответ:
WD Green позиционируются как диски для архивов, и прочей холодной информации.
Они не предназначены для больших  нагрузок и  использования в рэйд массивах.
Как именно реализован контроллер массива программно или аппаратно особой роли не играет.
Для NAS логичнее смотреть в сторону WD RED

Худший ответ:
Согласно моей информации, Green и Red являются физически одинаковыми дисками. Единственным отличием является добавленный крошечный датчик вибрации, который легко переоценивается, поскольку надлежащий металлический корпус быстро нейтрализует вибрации, и только реальные серверные / корпоративные диски имеют надлежащие датчики вибрации, что делает их пригодными для складывания множества дисков, расположенных близко друг к другу - 40 дисков в например, корпус Norco.
Я часто слышу аргументы о том, что Красный быстрее, потребляет меньше энергии и генерирует меньше тепла, чем Зеленый. Но я думаю, что это заблуждение, вызванное неправильным обзором, который протестировал WD Green с 666GB пластинами против модели с 1TB пластинами. Последний будет использовать одно меньшее блюдо для достижения той же мощности и, следовательно, потребляет меньше энергии и, следовательно, потребляет меньше тепла. Платформы большей емкости также приводят к более высокой плотности данных, что означает больше секторов на дорожку, что означает больше секторов на оборот (об / мин), что приводит к более высокой последовательной производительности.
Другими словами, зеленый и красный физически в значительной степени равны, а разница, приписываемая им, вызвана неправильным обзором, который люди считают само собой разумеющимся. Тем не менее, как Green (EARX, я думаю), так и Red, имели модели пластин 750GB и 1000GB, поэтому сравнение яблок с апельсинами приводит к ошибочным выводам.
Источник: https://goo.gl/5nxBBP
Вопрос: Как лучше сделать такой selector?

Лучший ответ:
Вот https://jsfiddle.net/L1032pcp/

Худший ответ:
div с закругленными углами, по кликам вверх / вниз переменная counter меняет значение +/-, и там же пишется в div.text(counter + ' шт');
Вопрос: Почему group by (mysql) не срабатывает?

Лучший ответ:
В выборке должны быть либо поля, находящиеся в GROUP BY, либо агрегирующие функции (SUM, AVG, COUNT и пр)
Ну уж никак не *

Худший ответ:
Или убрать в настройках режим sql_mode=only_full_group_by
Вопрос: Почему пропадает интернет при смене mac-адреса kali linux?

Лучший ответ:
Провайдер на основании MAC адреса выдает IP и прочие настройки. После смены он не знает что это за машина подключилась и не выдает настройки, вот и интернет не работает. Вот только зачем менять MAC?

Худший ответ:
Если требуется интерфейс с конкретным MAC-адресом, то можно поднять виртуальный интерфейс и уже ему задать требуемый MAC:ifconfig eth0:1 123.123.123.123/24 ether hw 08:00:00:00:00:01
Вопрос: Насколько критично, чтобы база емейлов, на которые будут приходяить массовые письма, была собрана через сайт, в плане попадания в спам?

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

Худший ответ:
Сервису рассылок глубоко пополам, откуда вы взяли базу. Ваша задача - получить максимальный профит от своей рассылки, чтобы люди прочитали то, что вы им написали, и страстно захотели это купить. У сервиса рассылок задача - заработать на вас.
Собрали mfpe email-ов через сайт, узнали по телефону или помедитировали и написали на бумажке - без разницы.
Если база — шлак, то и результат от рассылки будет нулевой.
Вопрос: Как подключить иконочный шрифт Material Design Icons локально?

Лучший ответ:
Загружено не то, шрифт состоит не только из одного *.ttf файла.
Или загружаете всё к себе, git clone http://github.com/google/material-design-icons/
или берёте по ссылке<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Подробнее google.github.io/material-design-icons/#icon-font-...

Худший ответ:
https://materialdesignicons.com/cdn/2.0.46/
тут полный список этих иконок
Вопрос: Сервер и его настройка под API?

Лучший ответ:
А почему бы не воспользоваться ajax, и генерировать уникальный ID запроса, передавать его клиенту сразу, затем на стороне клиента крутить анимацию ожидания и периодически дергать сервер по поводу получения инфы готов результат или нет?

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

Лучший ответ:
ip-api.com , хош json, хош xml

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

Лучший ответ:
Есть history.back()
https://javascript.ru/window.history

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

Лучший ответ:
Слово "идея" - маркетинговый буллшит в мире стартапов. Нет у вас никакой идеи и ни у кого ее не было. Давайте разберемся с тем, что такое стартап и вы поймете, как и где защищать идею.
Стартап - это проект (не обязательно новая компания, есть и стартапы в рамках крупных корпораций), который прокладывает новую бизнес-модель, которая раньше не существовала. 
Например, вы можете построить ресторан. И до вас стопицот других людей это сделали. То есть, основываясь на их опыте, вы можете просчитать риски и примерные доходы, рост. В стартапе вы первые (или параллельно с вами есть еще те, кто не закончил решение проблемы или не донес его до всех). Статистики для вас нет. Взлетит? Не взлетит? Никто не знает. Просчитывается очень мало, даже при соблюдении всех технологий и этапов роста. 
Теперь к идее: нет такого понятия. Вы можете сделать восхитительную штуку. Никто ее не купит, потому что ничего не заставит его сделать несколько лишних телодвижений, чтобы это получить. Потому что у клиента ничего не болит. Потому что это будет игрушка на день, как программа Google Earth или типа того.
Но вместо идеи есть два других понятия: проблема (боль клиента) и решение проблемы. Сегодня клиенты как-то уже решают эту проблему. Им же надо как-то с ней жить. Но решают может вручную, неоптимально или хотели бы решение более гармоничное. И готовы за это решение платить. 
Поэтому, прежде, чем начинать тратить деньги, стартапер сначала проверяет есть ли такая проблема и нужно ли такое решение (этап Customer Development).
А теперь скажите, что у вас там воровать, если добрая сотня человек сегодня бьется над решением этой проблемы?
Вот давайте посмотрим. Не говорите свою идею. Скажите только какую проблему нужно решить. И мы вместе посмотрим, не решена ли она уже. Потому что именно это и будут смотреть инвесторы.

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

Лучший ответ:
1. Linux != в безопасности.
2. Ложноположительные срабатывания всегда были и будут, как и ложноотрицательные.
3. Просто думать откуда и чего качаешь.

Худший ответ:
Можно просто не использовать антивирус :)
Вопрос: Как проще всего запрограммировать множество реакций на условия?

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

Худший ответ:
В дополнение к Роман Мирр, гляньте еще в сторону стейт машин:
https://habr.com/post/160105/
Вопрос: Как сделать рандомное лого на сайте?

Лучший ответ:
Когда мне надо было я в php сайта вставил рандом. Точный код не подкажу, но типа того:$a = array ("pic1.jpg","pic2.jpg","pic3.jpg","pic4.jpg","pic5.jpg");
shuffle($a);
echo("<img src='".$a[0]."'>");

Худший ответ:
Там просто используются разные картинки, сами посмотрите frozy.cf/1.png, frozy.cf/2.png, frozy.cf/3.png, frozy.cf/4.png, frozy.cf/5.png и т.д.
Вопрос: Почему программы на ассемблере работают быстрее?

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

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