Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какой размер текста должен быть у пунктов в списке (андроид приложения)?

Лучший ответ:
Я подглядываю сюда. Там собраны основные пункты и гайдов Google

Худший ответ:
И не найдете. Стандарта нет, делайте на глаз.
Вопрос: Ремонт или покупка нового?

Лучший ответ:
Имхо, брать новую, раз материнка отваливается.

Худший ответ:
я купил за 17 000 тошибу. i3, 3gb DDR3
Не думаю, что стоит мучаться со старьем, тем более как на заводе уже не припаять.
Если Вы злейший человек, грейте и продавайте.
Вопрос: Windows 10 драйвера 8.1?

Лучший ответ:
Скачать драйвера для Windows 10 с сайта производителя: https://www.asus.com/support

Худший ответ:
Дрова на видюху встали плохо :(
У меня такое было.
Включаем ноут, ждем появления кружочка из точек и давим несколько секунд на кнопку выключения - комп вырубается.
Включаем и видим диагностику, ждем, появляются варианты загрузки - восстановление системы и дополнительные параметры.
В дополнительных параметрах находим загрузку в безопасном режиме, грузимся.
Если загрузится в безопасном - это победа!
Открываем диспетчер устройств и удаляем или откатываем дрова на видеокарту (или видеокарты, если их две).
Если инструкция не достаточно подробноя, то пишем мне на почту mohn.mail@gmail.com напишу подробную инструкцию.
Восстановить систему по умолчанию скорее всего не получится, скажет, что драйвера нет. Но как вариант можно тоже попробовать и качать необходимые драйвера с сайта ASUS для Windows 10. Если их там нет, то не отчаиватся и просто обновить систему. Винда сама поставит необходимые драйвера. Microsoft на этот раз сама себя превзошла и включила в обновления довольно большой пакет драйверов.
Вопрос: Домашний роутер со встроенным жёстким диском

Лучший ответ:
А почему не взять какой-нибудь старый-добрый wl-500w и коробочку с внешним хардом к нему?
только по требование гигабита не проходит.

Худший ответ:
Мне подарили древний Buffalo's LinkStation (made in Japan!)
Из вашего списка нет только WiFi, но это решается USB донглом за $15.
Ну и настройка только через SSH.
Вопрос: Блог по математике

Лучший ответ:
Вы абсолютно правы — она нужна. К IT имеет самое непосредственное отношение. К тому же это намного полезнее, чем желтушные новости и дурацкие HOWTO для людей с атрофированным мозгом. Я бы почитал. Пишите. А блог можете выбрать этот, он популярен и туда что только не пишут.

Худший ответ:
С радостью почитал бы интересных статей и очень желательно с примерами использования знаний. А то как-то курс высшей математики прошел где рассказывалось много интересного, а живых примеров в большинстве случаев не особо увидел.
Вопрос: Где подробно расписано про extensions.conf в Asterisk?

Лучший ответ:
Здравствуйте
Есть хорошая книга: Asterisk The Future of Telephony
В ней все просто и понятно описано

Худший ответ:
В консоли Asterisk'а> core show applications
> core show application ...
> core show functions
> core show function ...
Вопрос: Как обратиться одному методу к другому?

Лучший ответ:
return $this->hellow_world()
Hello пишется без w ;)

Худший ответ:
Я полностью согласен с предыдущими ораторами.Мне нужно, чтобы метод внутри класса могу работать внутри другого метода.Перечитывайте перед публикацией )
Вопрос: Возможен ли заработок на железе 24/7?

Лучший ответ:
Берете клавиатуру с мышкой и начинаете 24/7 делать заказы на фрилансе....Профит
Для биткоинов уже нужен ангар таких машин чтобы заработать хоть что-то.

Худший ответ:
Если обеспечить стабильный аптайм и онлайн можно развернуть бомжехостинг, шареды или VPSки, от вашей честности будет зависить профит =) Самый реальный вариант который я вижу.
Вопрос: В каком возрасте вы прочитали GOF паттерны?

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

Худший ответ:
с 20 до 27 лет работал схемотехником...программировал в школе, институте, на работе под микроконтроллеры и для ПК простые приложения для взаимодействия с микроконтроллерами. 
В 27 стал работать С#-программистом и GOF-книгу прочитал в 29. Нового почти не узнал, узнал названия тех вещей, которыми занимался. =)
Вопрос: Интересен ли анализ алгоритмов?

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

Худший ответ:
Посмотрите: среднее кол-во просмотров любого вопроса тут не превышает пару сотен. На Хабре аудитория на порядки больше. Опрос типа вашего на Тостере не даст релевантных результатов.
Пишите! : )
Вопрос: Какие есть современные альтернативы FoxPro?

Лучший ответ:
Жесть какая... либо препод ограбил музей, либо это - курсовая по археологии!
Современная альтернатива - это MS Access (Win) или Filemaker Pro (Mac).
Но альтернативой это можно назвать весьма условно, т.к. реальная современная альтернатива - это не десктопные БД, а все же БД с архитектурой клиент-сервер + UI к ним на любой основе (от жирных клиентов, и вплоть до веб-приложений в облаке).

Худший ответ:
Самый близкий по юзабилити к VPF 9 будет DataFlex (https://www.dataaccess.com). В нем так-же есть конструктор форм и отчетов. MS Access с его средой и языком разработки оставлю для мазахистов. Отладить в нем будет котастрофичный гемор, кастомизировать вид формы тоже.
Вопрос: У всех сегодня не работает Upwork?

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

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

Лучший ответ:
Не стоит, если собираетесь ее реализовывать самостоятельно.

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

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

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

Лучший ответ:
Что ж вы все так работать не хотите-то.

Худший ответ:
Такие инструменты есть, но psd должен быть сделан очень хорошо и чисто. Всё по слоям. Иначе рискуете на выходе получить тупо одну картинку в html
www.psdtoweb.de - бесплатный
psd2htmlconverter.com/ru - платный
вообще https://www.google.ru/search?ie=UTF-8&hl=ru&q=psd2...
Вопрос: Несинхронизированный доступ к памяти и многопоточная гонка?

Лучший ответ:
Касательно представленного куска:
Вопервых — надо понять, являются ли в вашем случае операции манипулирования double — атомарными с заблокированной шиной, для этого нужно знать архитектуру процессора, на котором все это пускается и видеть дизассембл представленного кода.
Во вторых надо убедиться в том, что сама функция вычислить(...) — является реентерабельной.
В третих — с чего вы вообще взяли что это гонка?

Исходя из представленного кода — можно только предложить обернуть его в double checked locking, но вообще то, что оно до сих пор не обернуто говорит или о том, что первые два пункта уже проделаны (что сомнительно, ибо в таком случае понятно, что в представленном коде нет гонки), или о том, что нифига этот код ни «хорошо отлаженный».

Худший ответ:
Если данные невыровненны, то могут быть любые фокусы, атомарность не гарантируется.
Вопрос: Куда идти абитуриенту, интересующемуся в it, но не хотящему быть программистом?

Лучший ответ:
Как всегда порекомендую робототехнику.

Худший ответ:
Бизнес-информатика?
Хотя с таким набором предметов на неё вряд ли получится поступить.
Вопрос: Пара вопросов о python'e, ответите?

Лучший ответ:
Дефолтные советы: Марк Лутц «Изучаем Python», dive into python (есть на русском). После беглого прочтения можно садиться и программировать при помощи stackoverflow.Насколько сложно? Тут, опять дефолт, все от человека зависит. По-моему, идеология языка в самый раз для новичков.
Язык кросс-платформенный, нужен интерпретатор (под виндой сам работаю), поэтому писать ПО под нее можно. 
Я так понимаю, что под Desktop вы подразумеваете приложения с GUI? Тогда есть библиотеки: PyQt (биндинг полноценного Qt к Python), Tkinter (встроенный гуй), PyGTK, PyKDE, Wx. Много их, тут можете ознакомиться со списком.

Худший ответ:
На coursea есть курсы, один из них стартует завтра
Вопрос: Почему уменьшился список Q&A на главной?

Лучший ответ:
Белки-истерички.jpg

Худший ответ:
Может из-за ближайших событий? Чтобы места по вертикали примерно столько же занимало
Вопрос: Как узнать частоту ИК пульта ДУ?

Лучший ответ:
Соберите любой LIRC приемник. 99%, что ваш пульт с ним заработает.

Худший ответ:
Вообще все пульты пашут по стандарту RC5 — radioparty.ru/index.php/device-pic/392-lesson-rc5
Вопрос: Как добавить пагинацию в компонент каталог битрикс?

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

Худший ответ:
Идете вот сюда /bitrix/templates/ваш шаблон/components/bitrix/news.list/news.news-list,
Открываете файл template.php,
Дописываете туда 
<это>---------------------------------------------------------------

		                	if( ($key+1) % 4 == 0 )
		                	{
		                		echo "";
		                	}

		                	if( ($key+1) % 3 == 0 )
		                	{
		                		echo "";
		                	}

		                ?>
    	<это>---------------------------------------------------------------		   
   <это>---------------------------------------------------------------



<это>------------------------------------------------------------------

И будет вам пегинация нормальная
Вопрос: Восстановление битых фотографий, как починить?

Лучший ответ:
Всё что можно сказать, так это вам повезло. 90-95% успешного восстановления - это хороший показатель.
Насколько знаю, нету ПО для восстановления уже самой целостности изображения. Данные потеряны или повреждены, о каком восстановлении целостности может идти речь.

Худший ответ:
программка JPGfix. По ее функционалу,теоретически, Вам должно  подфартить..  Кстати, прога в BMP конвертирует вроде, но я не проверял.
Просьба отпишитесь по результату работы. Интересует, так как сам вожусь с фотками, но у меня ситуация гораздо хуже...
Вопрос: Монтирование ext4 на Mountain Lion?

Лучший ответ:
установите MacFuse и fuse-ext2

Худший ответ:
Читани здесь: romockee.com/ru/ext4-3-2-on-mac-os-x
Работает на OS X 10.8.x - 10.9.x
Вопрос: Почему клиент по любой мелкой проблеме в программе первым делом звонит на телефон?

Лучший ответ:
Просто говорите "я не могу ответить на этот вопрос по телефону, напишите на e-mail". Или как есть "простите, но ваши звонки отнимают у меня слишком много времени. пишите на e-mail". Будьте поувереннее в себе. Хамить не надо, а в остальном говорите как есть.
Ну, трубку всегда надо брать, а если отключаете - поставьте голосовой автоответчик "вы позвонили в нерабочее время, перезвоните во столько-то".

Худший ответ:
Или/и пропишите в лицензионном соглашении количество обращений по телефону.
Вопрос: Как быстро из html переписать в php ?

Лучший ответ:
<?php
echo '<тут ваш html>';

Худший ответ:
А в чём проблема? Чтобы перенести код из HTML в PHP нужно всего-лишь его скопировать, а потом вставить, ведь HTML - это язык разметки и он может использоваться в файлах PHP
Вопрос: Как сделать midleware в django, который меняет TEMPLATE_DIRS?

Лучший ответ:
Когда Вы делаете такие штуки, нужно иметь в виду, что объект settings глобален. Вот зайдёте Вы с мобильной версии, миддльварь сменит TEMPLATE_DIRS. А сразу же следом за Вами (пока джанга не успела начать рендерить шаблон) — кто-нибудь с компьютера. И значение TEMPLATE_DIRS вернётся в исходное.
Ключевое слово для поиска решения — thread locals.

Худший ответ:
Есть батарейка https://github.com/gregmuellegger/django-mobile
Возможно, исходники чем-то вам помогут.
Вопрос: Как сделать статичный IP адрес, если провайдер не предоставляет такой возможности?

Лучший ответ:
Или можно посмотреть в сторону различных сервисов типа DynDNS

Худший ответ:
Мхм. 
Вкратце - "принести" ip адрес с другого сервера. Например, здесь это описано для linux-ов. Само собой, трафик будет проходить сначала через внешний сервер, а затем по vpn-туннелю (или любому другому) приходить на вашу железку. 
Ищите в гугле устраивающий по цене "VPN с выделенным ip адресом", в моём мануале читайте, как на клиенте настроить роутинг. Можно поискать виртуалку с двумя ip-адресам и арендовать её (только НЕ openvz). А с ней уже всё настроить по моей статье.
Вопрос: Что это за скрипт?

Лучший ответ:
Если ширина экрана/body меньше 1201, то устанавливается у элемента #page_cnt margin-left = 0,а у #page width = 500px

Худший ответ:
Вообще, он смотрит размер экрана и сравнивает этот размер с переменной SZ. Если размер окна больше нуля, скрипт при помощи Math.min выбирает минимальный размер, то есть 1201 или меньше. Если это это удовлетворяется скрипт меняет размеры страницы.
Вопрос: Как записать файл размером &gt;4Gb в C++?

Лучший ответ:
Что-то мне подсказывает что проблема в том что размер типа int, который используется в ofstream::seekp и в ofstream::write равен 4 байта. А это значит что с помощью этих методов принципиально нельзя записать больше 4 Гб.
Здесь есть ответ:
stackoverflow.com/questions/293672/reading-files-larger-than-4gb-using-c-stl

Худший ответ:
В таком случае врет не только MSDN.
Кстати еще неизвестно как это значение обрабатывает сам seekg :)
В общем, я все равно не вижу смысла пользоваться стандартными потоками ввода-вывода — с ними только вечные пляски с бубном, плюс в режиме append не запишешь данные в произвольную позицию :)
Вопрос: Зачем писать в путях «./»?

Лучший ответ:
./ в nix-системах адрес текущего каталога, т.е. ты сообщаешь серверу, что искать надо файл именно в этом каталоге, а не в том, который определяется в base

Худший ответ:
Не идентично. Например со страницы "node/99" нажав на ссылку "node/88" попадёш на "node/99/node/88"
Вопрос: Как включить компьютер не залезая под стол?

Лучший ответ:
Вывести кнопку на стол?

Худший ответ:
Мне повезло, у меня можно мышкой 2 раза клацнуть. Настраивается в биосе. Про клаву вижу, что никак, но про мышь Вы не писАли…
Вопрос: Как правильнос построить N-Tier/N-Layer архитектуру для ASP.NET проекта?

Лучший ответ:
Тема достаточно глубокая, лично я сейчас сам её изучаю. Пока что просто подкину вам нужную ссылку: 
blog.byndyu.ru/2014/05/blog-post.html
Почитайте, у Александра там ещё много чего интересного написано по этой теме.
Если говорить конкретно по вашему сообщению, то в целом вы всё описываете правильно. Т.е. у вас может быть слой DAL для доступа к базе данных и получения объектов. При этом DAL не содержит бизнес-логики, он только возвращает объекты. Причём списки объектов желательно возвращать как IEnumerable, а не IQueryable.
Далее, как вы правильно сказали, есть слой бизнес-логики. Опять же, как правильно было замечено, слой бизнес-логики хранит ссылку на интерфейс DAL и обращается к нему для получения объектов. Конкретный DAL задаётся через DI.
Насчёт обращения к DAL из контроллера - я бы рекоммендовал всё-таки обратиться через сервис. Вообще я задавал Александру почти точно такой же вопрос - что если мне требуется просто получить список объектов из DAL. Он дал мне ссылку на эту статью blog.byndyu.ru/2011/08/repository.html Почитайте, там как раз об этом.
По-поводу того, в каких сборках правильнее хранить интерфейсы - я, к сожалению, сам пока точно не знаю, так как не прочитал ещё достаточно литературы.
И в финале скажу, что сам Александр рекоммендует по-возможности использовать не сервисные слои, а CQRS. О том что это - поищите в поисковике. Надеюсь ответ был полезен.

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

Лучший ответ:
В написанном использую JQuery.$element = "путь к элементу (CSS)";

$($element).on("mouseover", function() {
$.ajax({
			type: /* post или get */,
		  url: /* путь к php файлу */,
			data: /* данные, которые нужно послать скрипту (объект) */,
		  dataType: /* json | text | html */,
		  success: function(answ) {
				
				// ответ с сервера посылаем простым выводом (print или echo в php) и он записывается в переменную answ
				
		  }
		});
});

Худший ответ:
Вам помогут две ссылки
api.jquery.com/on
api.jquery.com/jquery.post
Вопрос: Какую выбрать книгу по WPF?

Лучший ответ:
В офисе была только книга Мак-Дональда, в ней много теории, есть примеры, которые сложно использовать в реальной жизни (поскольку WPF без MVVM практически нежизнеспособен), поэтому вначале она мне не понравилась, но позже, при необходимости реализации сложного UI на WPF мы часто к ней возвращались, как справочник её использовать крайне удобно. 
И знание внутренних механизмов работы WPF хорошо помогает в отладке - понимаешь причину ошибок, где-то не всплывает пузырьковое событие, потому что перехватывается внутри, где-то не срабатывает биндинг, поскольку проблемы с привязкой (привязка идёт к свойству объекта, а поменялся сам контекст).

Худший ответ:
Адам Натан - внутренняя кухня WPF, не слишком детально, но достаточно подробно. Очень неплохая книжка. Ну а потом, обязательно что-то про MVVM.
Вопрос: Лёгкий браузер изображений под Win7x64?

Лучший ответ:
FastStone Image Viewer www.faststone.org/
Что именно хочется от контекстного меню?

Худший ответ:
Irfanview. Умеет показывать все, что только возможно показать:)
Вопрос: Как установить Android Studio? Скачал jdk, указать к нему путь при установке Android Studio и всё?

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

Худший ответ:
Тут же всё описано developer.android.com/sdk/installing/index.html?pk...
Вопрос: Как сделать такой красивый hover-эффект на элементах?

Лучший ответ:
Посмотрите этот туториал и всё поймёте.

Худший ответ:
это css3 на ховере
почитай документацию по:
transition
transform
opacity
можно и по animation
Вопрос: Какова нормальная-оптимальная скорость загрузки сайта?

Лучший ответ:
Если вдруг кто увидит этот вопрос и ответы в 2020-2021, то знай.

Твой сайт быстрый, если загружается от 0 до 3 секунд.
Вес страницы не должен превышать 1000 килобайт.
Количество HTTP-запросов от 50 до 100 на страницу.

Как это всё измерить. Главное, не замеряй в одном сервисе. Их сейчас много.
Вот тут я описал их все: https://vc.ru/services/72263-20-instrumentov-dlya-...

А вот какими я сам пользуюсь, чтобы точно понять куда копать:

Сначала нужен экспресс отчет: https://loading.express - тут будет выжимка быстро и коротко.

Потом замеряю в https://www.webpagetest.org/, чтобы понять вес страницы и запросов сколько.

Ну и в конце смотрю на Google PageSpeed Insights.

Худший ответ:
Чем быстрее тем лучше, и все. Ну и опять же имеет место субъективная оценка.
Вопрос: В чем разница между int a() и int a=int()?

Лучший ответ:
А теперь выведите typeid(first).name() на экран и удивитесь.
Первая строчка это объявление функции first без параметров и возвращающая int. Имя функции превращается в указатель, указатель конвертируется в bool (true), который конвертируется в int (1).

Худший ответ:
неявное приведение типов или как отстрелить себе ногу в С и С++
Вопрос: Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

Лучший ответ:
Три проблемы:Нет никаких гарантий, что гугл внезапно не прикроет лавочку.Что будете делать, если пропадет доступ в интернет? Офис-то встанет.Что будете делать, если угонят аккаунт? Закроете бизнес?

Худший ответ:
Спасибо, друзья!
ms sql server я использую в связке с power pivot. Так как коммерцу я не хочу ставить management studio. Я думал, если я отражу данные в power pivot он сможет построить себе необходимые отчеты, используя сводные таблицы. Вот так вроде все требования должны были уже закрыться, но... 
По сети power pivot показал низкую производительность, то есть мне пришлось чуть ли не целый день ждать пока power pivot не загрузить с базы ms sql server. Кое как загрузил, но я не смог построить сводную годам, кварталам и месяцам, так как формат дат в моей базе отличался, и power pivot не воспринимал ее как дату. Хотя, когда я брал топ 100 запросов и вставлял в excel, он прекрасно делал сводные отчеты.
По этим причинам мне пришлось отказаться от power pivot и msd sql server. Плюс ко всему у нас интернет по офису раздается по wi-fi что не очень то хорошо.
Насчет профессионала в этой области. Был у нас один такой человек, красавчик, в sql server и .net разбирается, синтаксис понимает и нормально пишет код, но к сожалению он так и не понял меня и сделал по своему, хотя я ему показывал пример. На этой почве,  мы рассорились и он ушел.
Почему гугл? Потому что загрузив на сервера мои данные я мог бы еще и покупателям и поставщикам сделать отчеты которые они постоянно просят. Плюс покупатели очень часто просят обновить каталог товаров. Я умею пользоваться сервисами гугл, в основном таблицы, писать под нее расширения.
У меня такие данные, что если их кто то украдет, бывшие сотрудники или кто сто сольет, в таком случае, они узнают наших поставщиков и ценообразование на товар. Плюс ко всему мы раскроем свой оборот что не очень хорошо.  А вод логины и пароли там нет, там чисто данные для коммерческого отдела.
Что делать стоит загрузить всю базу в Google Fusion Table?
Вопрос: PHP или Python, что удобнее и выгоднее?

Лучший ответ:
PHP последней актуальной релиз-версии - однозначно.
Фреймворк: yiiframework.com

Худший ответ:
Моё мнение языки программирования Python и PHP разные и по своему полезны.
**Python не совсем Web, его главный плюс это искусственный интеллект, нейросети. 
***PHP тоже можно написать подобие всего этого, но это будет не совсем круто как на Python... PHP все же это сайты, на нем работает большинство сайтов, это крутые CMS на которых можно развернуть Landing (одностраничные сайты) намного быстрее и легче. Если нужно что то больше используйте фреймворки.
Моё мнение если идти по пути PHP. Изучить основы PHP -> Основы ООП PHP 7 -> MVC паттерн -> PHP фреймворк Laravel (очень удобный и хорошо развивающийся фреймворк).
**Python язык для всего, на нем можно писать и приложения для Android, IOS, Windows, linux. 
***PHP это язык для Web, на не получится написать полноценные приложения для Android, IOS, Windows, Linux. Приложения для Windows, Linux писать можно, но это будет не совсем программа. Может она и будет выглядеть как программа, но когда вы ее запустите то будет запускаться Apache и браузер.. Повторюсь опять же это не преимущество PHP...
***PHP легкий язык не требующий углубленного знания к примеру типов переменных. Он сам выберет тип, даже если вы его явно не указали, но к примеру в PHP 7 вы можете принудительно указывать тип данных, опять же PHP не будет ругаться если вы это не сделаете... Все это заставляет программистов PHP писать "Костыли" (поговорка: и так сойдет...) - программы  вроде работают, но может возникнуть ситуация когда пользователь что то сделал не так (указал не тот тип) и все упало. 
Опять же все это зависит от программиста, язык тут не причем. На любом языке можно писать с костылями... На любом языке программирования можно писать говно код даже на Python.. Все зависит от вас, удачи!!...