Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как определить, что чужой скрипт добавляет в глобальный объект?

Лучший ответ:
Можно сравнить список ключей в window до импорта скрипта и после, как вариант.

Худший ответ:
Оберните window в Proxy, тогда увидите даже последовательность происходящих инициализаций. 
https://learn.javascript.ru/proxy
Вопрос: Есть ли какая-нибудь разница между использованием HEX, RGBA, HSLA?

Лучший ответ:
В рядовых случаях чаще всего используется HEX
RGB или HSL в случае если нужно указать непрозрачность.
Я лично использую HSL, с ним очень удобно экспериментировать с оттенками цветов.
Но обычно HEX + RGBA достаточно.

Худший ответ:
RGBA можно и прозрачность задать,использую постоянна HEX иногда RGBA.
Вопрос: Блок питания вместо батарейки в смарт?

Лучший ответ:
Привет,
А модель смарта какая хоть? Они разные бывают... Некоторые тестируют наличие батареи и ее работоспособность и после теста если "все Ок", запускают смарт. А некоторым пофигу - дал правильное питание (нужные вольты и амперы) и он заработал.

Худший ответ:
нормально, подаешь на разъем аккума напряжение в пределах 3,5-4,0 вольт и все ок.
ни каких проверок по напряжению провести не возможно.
на третий контакт обычно выведен датчик температуры - терморезистор, но он нужен только при зарядке.
Вопрос: Может ли Lua потенциально заменить Javascript?

Лучший ответ:
Может ли Lua потенциально заменить Javascript?
Нет. Такие гиганты как Google пытались это сделать, но у них ничего не получилось.Тогда встает вопрос о поддержке браузерами Lua. Которой у браузеров-гигантов никогда не будет. 
Вы сами ответили на свой вопрос.

Худший ответ:
На сервере без проблем (см. Nginx + Lua), вот только там достаточного множества готовых решений для удобной работы
На клиентской стороне выполнить Lua можно сделать через VM, но это будет актуально только для отдельных компонентов приложения, которым нужна кросс-платформенность с довольно хорошей производительностью
gamedev.stackexchange.com/questions/56189/why-is-l...
Вопрос: Откуда можно скачать исходник современных сайтов что бы посмотреть как сверстать и изучить?

Лучший ответ:
Можно поискать на GitHub как-то так

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

Лучший ответ:
sprintf: s - строка, print - печать, f - форматированный режим; форматированная печать в строку.
fprintf: f - файл; форматированная печать в файл.
printf: форматированная печать в стандартное расположение, обычно в консоль.

Худший ответ:
Функционально:

Вернет строку новую строку. Удобно для создания своих строковых представлений для данных других типов. 
var age = 20
NewAge := fmt.Sprintf("New %v", age)     // "New 20"

Используется для отправки данных в "ридер" - в примере происходит отправка в терминал значения переменной age. Print("123") - это обвертка над Fprint(os.Stdout, "123")
var age = 20
err := fmt.Fprintf(os.Stdout, age)      // "20"

Выводит в терминал форматированную строку. Правила форматирования тут
var age = 20
fmt.Printf("New %v\n", age)    // "New 20". Не забывайте ставить символ '\n' - перехода на новую строку.

Сохраняет введеное строковое значение в переменную
var name string
Scan(&name)

При вводе "My name is ThiefPytin"
Сохранит в переменную name только часть строки подходящей под формат (ThiefPytin)
var name string
Scanf("My name is %s", &name)
Вопрос: После старта компьютера, google chrome успевает открыть одну страницу, потом подвисает на 30 секунд, кто нибудь сталкивался?

Лучший ответ:
*барабанная дробь*
win 10 Параменты > Сеть и интернет > Прокси > Убераем галочку с "Определять параметры автоматически"
.........
Хром больше не тормозит при первом запуске, что за баг хз.

Худший ответ:
У меня было нечто похожее в яндексе. Пересоздал профиль, и всё заработало нормально.
Вопрос: Кто проходил курс обучения от learn.python.ru? Как вам?

Лучший ответ:
В общем, я гну свою линию.
Пошел я на эти курсы. 3-я неделя на подходе.
Ключевое что могу сказать - тут учат учиться, для меня это плюс.
Работать надо много.
Остальное уже после окончания.UPD 5 февраля 2018
Кому лень читать дальше скажу сразу: рекомендую, идите.
3 февраля закончился мой поток. Как я уже говорил, работать надо много. Очень. Если понимаете, что сольетесь, либо уже сливались с каких-то других мероприятий, то не идите вообще (чуть ниже объясню почему).
Так вот, первое занятие, все красиво, весело. Лекции, песни, пицца, пляски. Круто.
Второе занятие. Ты приходишь, ожидаешь чего-то как в прошлый раз. И...нет. "Ребята, дальше у нас практические занятия в группах, до такого-то урока делаем задачки и домашку, а после - дипломный проект в парах".
Следующие занятия: кодишь, делаешь задания, домашку/диплом, задаешь вопросы, кодишь, кодишь, кодишь.
Кураторы помогают, причем очень мощно. Но за тебя ничего не сделают. Как огромнейший плюс куратор (по крайней мере мой) не говорил что я решаю задачу неправильно, но помогал ее решить так, как я того хотел. 
Т.е. тебя не ломают, а подталкивают "да, в общем-то так тоже можно, только вот тут сделай так, а тут так". Ну, естественно, кроме откровенной дичи, пожалуй.
На самом деле, еще копать и копать в плане освоения материала. Потому что это лишь вершинка айсберга, НО(!) за два месяца с НУЛЯ слепить работающее приложение - это мега круто.
Касаемо диплома: писать его надо в паре с кем-то. Мой партнер слился, поэтому я тащил в одного. Мне в общем-то норм, но навык парного программирования я не получил. Так что если пошли - фигачте до конца и не подставляйте партнера. Либо сливайтесь до разделения на пары, вот. 
И еще раз, то что написано у них на лендинге - это правда. Этой рекламе можно верить :)

Худший ответ:
Так не пойдет. Начни изучать в применении к той области, которая интересна. Иначе ничего не выйдет.
Интересен геймдев - вперед в геймдев. Интересно сис.админство - import os и вперед, интересно машинное обучение - pip install scikit-learn и вперед. То что непонятно как реализовать - читать и вникать. А сухая зубрежка синтаксиса ни к чему полезному не приведет.
Вопрос: Как удобно реализовать роутинг при большом списке роутов на Koa?

Лучший ответ:
Я бы предложил вообще вынести список роутов в один файл. Ведь по сути роутинг это просто связывание хэндлеров с определенным URL (Иногда с привязкой middleware посередине).
Далее этот файл положить в одном каталоге с точкой входа в приложение и в него уже заимпортить реализации хэндлеров из тех модулей которые необходимы.
Это позволит полностью отделить реализацию от путей. А так же позволит не запутаться в огромном кол-ве путей и групп, т.к. они будут в одном месте.// routes.js
import users from './users';
import posts from './posts';

router
  .get('/', app.homeHandler)
  .get('/posts', posts.listHandler)
  .post('/users', users.createHandler)
  .put('/users/:id',  users.changeHandler)
  .del('/users/:id', users.deleteHandler)
  .all('/users/:id', users.allHandler);

Худший ответ:
Мы разносили роуты + модели для каждой абстракции (users, clients, cards) по отдельным папкам, и у вас соответственно в корне есть папки users, clients, cards, и внутри подпапки routes и models.
а в индексе просто делается несколько app.use для каждого набора роутов.
работать не больно, и можно достаточно хорошо расширять систему.
Вопрос: Как уменьшить потребление оперативной памяти и поддерживать много процессов одной программы?

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

Худший ответ:
Посмотрите, сколько программа потребляет в пике и напишите скрипт запуска с разными параметрами так, что бы одновременно работало не более floor(ram/ramperprocess) процессов программы. А если программа требовательна к ресурсам цп, то лучше ограничить это число количеством ядер/потоков
Вопрос: Как повышать уровень скила?

Лучший ответ:
По аналогии:
Если вам нужно пресс подкачать - вы тоже будете искать наставника, который будет вас подбадривать? Делайте сами, пусть не верно, пусть криво - но опыт будет накапливаться.К сути:Найдите пару мелких заданий на фриланс площадках - сделайте их "просто так". не надо ждать пока заказчик вас одобрит и его устроит сумма - просто сделайте решение, для себя, что бы поднять скил. Такой подход избавит вас от одной из проблем - "на чем тренироваться".
Да многие скажут что это - в пустую потраченное время. Да, но вы получите опыт, а именно ОН вам и нужен.Найдите пару человек в вашем городе занимающехся тем же чем и вы (ваша специализация) - "помогайте" им - за бесплатно, ради опыта.Сделайте задачи пару знакомым заказчикам  - сайтики, формачки, лэндинги. За "спасибо" или "бутылочку пенного" - а опыт идет в подарок.
ЗЫ. Сам при большом количестве свободного времени - начинаю заниматься таким "социальным ононизмом" - помогаю знакомым и мелким заказчикам.

Худший ответ:
Суть вопроса: как начать поднимать уровень скила, ведь наставника нет, как на стажировке, который направит куда нужно и подскажет.
Ответ прост: собственными усилиями.
Так поднимаются 90% программистов. Ситуации, когда есть толковый наставник, который всегда подскажет и укажет направление, куда двигаться (и объяснит, почему надо делать так, а не иначе) - это исключительные случаи из разряда "очень повезло".
Мне на текущей работе обещали, что будет наставник и ревью кода. По факту - нет ни того, ни другого.
Вот такая вот суровая жизнь.я готов даже работать удаленно
Открою вам секрет - если скилл низкий, то ваш код потом все равно нужно будет переписывать. Еще неизвестно что проще - написать самому с нуля, или дать задание вам, потом вникать в то, что вы там наговнокодите (а это норма для джуна), потом указывать на ошибки, и в итоге все равно нужно будет чуть-ли не за спиной стоять, и говорить что писать (если уровень реально низок).
Вопрос: Adobe закрывает Assets Extract, есть ли альтернатива?

Лучший ответ:
Avocode, 14 дней триала, потом еще 14 дней триала, и.т.д ) 
Есть под Мак, Винду, Линух.

Худший ответ:
Вроде как грозился закрыть в апреле. Но у меня все работает.
Использую бесплатную онлайн-версию на https://assets.adobe.com/, т.к. сижу на Linux.
Вопрос: Почему кириллица корректно не отображается?

Лучший ответ:
Если вы не указывается charset в заголовках HTTP или в META, то браузер, встречая 8-битные символы в документе, пытается определить его кодировку. Работает это эвристически и по статистическим характеристикам текста. Поскольку реально ваш текст короткий, не является русскоязычным и не укладывается в статистические характеристики какой-либо кириллической кодовой страницы, то кодировка с большой долей вероятности определяется неправильно.

Худший ответ:
Видимо кеш ибо такого быть не может
Вопрос: Почему нет интернета? Глючит коммутатор? Что делать?

Лучший ответ:
TPLINK модель?DLINK модель?перезапуск оборудованиякакого именно?по роутерам Каким? роутеры как-то настроены по DHCP как-то - это как именно?что нужно почитать в таком случае https://linkmeup.ru/blog/11.htmlЧто делать?
 лучше обратиться к системному администратору для разбора ситуации, если вы не знаете что делать. Перезагрузка ≠ решение проблем.

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

Лучший ответ:
Саблайм не нужно запускать от суперюзера
Если вот совсем не хватает времени изучить nano то запускать нужно из графической оболочкиgksudo /path/to/exec
superuser.com/questions/202676/sudo-vs-gksudo-diff...

Худший ответ:
sudo /*путь к файлу*/ start
Вопрос: Google и Казахстан проблемы доступа, как решить?

Лучший ответ:
Исходя из имеющейся даже в РФ информации в Казахстане идут народные выступления против действующего диктаторского режима и из-за этой причины действующая диктатура ограничила доступ в сеть для жителей страны. Для решения проблемы с доступом есть несколько способов:
1. Принять участие в народных выступлениях, устранить диктаторский режим и избавится от цензуры в сети.
2. Спрятать голову в песок, поднять ВПН на виртуалке за пределами Таежного Союза и используя этот ВПН сидеть в сети.
Для решения номер два рекомендую Linode, Vultr, DO, OVH в качестве хостера и pritunl для поднятия ВПНа, pritunl позволяет поднять ВПН даже обезьяне.

Худший ответ:
Тоже имею проблемы с интернетом , со вчерашнего дня , vpn только помогает. (Алтел). Тоже с КЗ.
*подозрение на митинг итд*
Вопрос: Как переехать со старого сайта на новый?

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

Худший ответ:
То, что вы называете "сео детали" - это все текущие (на старом сайте) урлы, которые есть в индексе ПС. Если вы измените урл - это будет новая страница, не имеющая того "веса", а "всё что нажито..." будет отдавать 404.
Поэтому, если нет возможности использовать старые урлы (до символа!), придется сделать для каждого урла 301 редирект на новый урл. Это для разрабов не сильно сложно должно быть (чаще всего).
В любом случае, новый сайт как-то, да повлияет на позицию в выдаче не обязательно вверх, но очень хочется надеяться)) Т.к. хоть вы и сохраните все и всех, структура дерева, положение контента и его элементов изменится... Что-то уберется/добавится, повлияв на плотность вхождения ключей относительно всей страницы и т.д. Короче много чего учесть нужно, чтобы переезд был максимально комфортным.
А вы говорите "папочку я тут создам отдельную"...
Вопрос: Стоит ли изучать angularJS питон программисту минуя нативный js?

Лучший ответ:
Стоит ли изучать angularJS питон программисту минуя нативный js?
Конечно! Ведь это прямая дорога в говнокодеры.

Худший ответ:
Все вышеописанные ответы в чем-то правы. 
А еще можно задать себе вопрос стоит ли изучать AngularJS? В чем разница между AngularJS и Angular.
Но вообще, если речь идет об AngularJS, то без знания JS там будет трудно и непонятно. Аналогия такая: JS - это знания о том, какие слова существуют, как строить предложения, как можно вежливо послать на* гору кого-то; а фреймфворк - это просто описание того, как составить все эти вежливости, чтобы получить жанр Фантастика.
p.s. Когда встает вопрос "или это, или то", то выбирай "и это, и то" ))
Вопрос: Email или User id в БД created_by?

Лучший ответ:
Как раз Id пользователя в БД меняться не должен никогда. А вот email можно менять как угодно.

Худший ответ:
По хорошему вам не стоит удалять акк пользователей в БД. Добавьте в таблицу пользователей поле статуса, и присваивайте там для удаленных иной статус, и т.п.
Конечно, лучше всего делать связи через первичные ключи, как правило это id записи.
Вопрос: Вывод текста с MySQL в страницу php?

Лучший ответ:
так foreach тебе все и выводит. 
Собирай вывод в массив и выводи по ключу, например, или сам текст цеплять к attribute_id. 
Вообще и вопрос хорошо сформулировать было б неплохо.

Худший ответ:
Предлагаю почитать начало какой то книги по пхп. Там про циклы и массивы. И все станет на свои места.
Вопрос: Как в VUE сделать checkbox с возвратом '0' или '1'?

Лучший ответ:
У меня работает https://jsfiddle.net/wcx1o9ah/3/ 

Худший ответ:
А чего не вот так? https://jsfiddle.net/deliro/1yaqj0o8/
Вопрос: Как сделать статический сайт wordpress?

Лучший ответ:
вот этот плагин делает хтмл кеш на файлах и отдает статику https://ru.wordpress.org/plugins/wp-super-cache/
есть похожие решения для хранения в редис или мемкешед.

Худший ответ:
Есть волшебное слово "Кеш" которое как раз описывает этот функционал
Вопрос: На чем пишут сайты с кейсами и т.д.?

Лучший ответ:
Лучше тот инструмент, с которым лично ты (или нанятые тобой люди) лучше умеют работать.
Никаких принципиальных преимуществ нет у Node.JS.
Кроме того, что фронтендерам с Нодой лучше, привычнее, проще.
Подумайте, такие сильно нагруженные сайты как Facebook или Vkontakte - прекрасно живут на PHP.
Если вы представляете как сделать этот сайт с Node.JS, а не с PHP - делайте на Node.JS.
Если вы представляете как сделать этот сайт с PHP - делайте на PHP.
Лично я сделал бы с использованием Go. Но это я - а у вас опыт в другом.

Худший ответ:
Я слышал про Java, а вообще нужно понимать что именно там нужно сделать, так как есть онлайн игры и на php написанные, правда знаю про игру другого плана, например ikariam.
Вопрос: Как правильно прописать функцию при выводе в ассоциативном массиве xpath запроса?

Лучший ответ:
Чтобы получить единичное значение после xpath-запроса, вам надо использовать метод item().
То есть, условно:$prices_value = $xpath->query("//div/span[2]");
if($prices_value !== FALSE && $prices_value->length > 0)
   echo $prices_value->item(0)->nodeValue; // тут ваше значение
Без использования item() вы можете обходиться только если итерируете результаты query(), например:$prices_value = $xpath->query('//div/span');
if($prices_value !== FALSE && $prices_value->length > 0)
{
   foreach($items as $item)
      echo $item->nodeValue;
}
И это уже немного за рамками вашего вопроса, но я бы рекомендовал сократить xpath-выражения в query(). Я понимаю, что вы их скопировали из Firebug или другой вед-дев тулзы, но в вашем случае минимальное изменение верстки донора приведет к отказу работы ваших xpath-запросов.

Худший ответ:
Заменить$value->nodeValue
на$value->item(0)->nodeValue
Вопрос: Есть ли бесплатный хостинг с возможностью подключится к БД удаленно?

Лучший ответ:
Хостинг сейчас копейки стоит

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

Лучший ответ:
buffer = Makebuffer(); // buffer уже объект
buffer('duck') // вызовет так сказать construct buffer

Худший ответ:
Концепт (от Хекслет)Выражения и инструкцииОкружение и замыканияРеализация в JSYou Dont Know JS: Scope & Closures
Вопрос: Как поступить с заказчиком который не платит?

Лучший ответ:
50% - абстрактная цифра. Необходимо показать менеджеру работу. Но не код. Т.е. на доступном серваке разворачиваете код, кидаете ссылку, сверяете по пулу задач/ТЗ, какие пункты сделаны. Если полноценно ни одного - какие требования оплаты вообще могут быть? Если там реально наберётся процентов 40 сделанных тасков, то можно обсудить условия оплаты и предоставления кода. Но с такими прокатами я бы лично не стал работать дальше в этом проекте. Если только ребята согласятся поднять оплату и заплатить сразу 50% от новой суммы, а не аванс от старой. И дело не в том, что это хорошо или плохо. Просто разработчик и заказчик берут на себя обоюдные обязательства.  Искать нового программиста для доделки 60% проекта - это гарантированное увеличение бюджета и трата времени. Если люди реально готовы платить, а не обманывать, они вам предложат такое увеличение при условии адекватной демонстрации с вашей стороны.
Резюмирую:
1. Поднимаете проект на своей стороне.
2. Проводите демонстрацию.
3. Отмечаете закрытые пункты заказа.
4. Ставите заказчика перед фактом: "исходник он получает при условии оплаты обещанного аванса, но при таком отношении, после передачи кода вы уходите из проекта". Основание: вы не получили пока ни копейки. Договора нет. Со стороны заказчика устное соглашение не соблюдалось и нет гарантий, что будет соблюдаться. Если заказчик настаивает на исполнении обязанностей, говорите, что отдадите код после подписания договора. Юридически, если нет договора, факт оплаты подтверждает сделку. Т.е. договор или оплата. Предпочтительно - оплата.
5. Если сошлись на оплате, и заказчик просит пересмотреть ваш уход из проекта, отказываетесь до тех пор, пока заказчик не поднимет ценник. Сами ищите другой проект. Не факт, что заказчик пойдёт на уступки. Если второго проекта не будет, а заказчик согласится поднять цену, пусть доплатит сразу так, чтобы в сумме вышло 50% от общей суммы. Завершаем проект, радуемся.

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

Лучший ответ:
храните данные в vuex

Худший ответ:
храните данные в vuex
Вопрос: Как отключить защиту от spectre\meltdown?

Лучший ответ:
В /etc/default/grub - GRUB_CMDLINE_LINUX_DEFAULT

Худший ответ:
В параметры загрузки ядра - не знаю, куда Вы их прописываете, я прописываю в /etc/default/grub, в строку GRUB_CMDLINE_LINUX. Есть еще параметр nopti, который отключает Kernel Page Table Isolation. Не забудьте grub_mkconfig, если нужно.
Вопрос: Как узнать пересечение линий?

Лучший ответ:
Верно мыслите. Находите точки пересечения прямых. А затем проверяете эти точки на принадлежность отрезку. Т.е. координаты точки должны принадлежать диапазону координат отрезка. min(A.x, B.x) <= x <= max(A.x, B.x). Для ординаты аналогично.

Худший ответ:
Вот тебе псевдокод для определения, пересекаются ли отрезки.Кодпрограмма пересечение двух отрезков <вх:ax,ay,bx,by,cx,cy,dx,dy:R>:Q
 дано    : | концы первого отрезка (ax, ay) и (bx, by)
           | концы второго отрезка (cx, cy) и (dx, dy)
 получить: | ответ = отрезки пересекаются да/нет
 ____________
  | A(ax, bx) B(bx, by) C(cx, cy) D(dx, dy)
  v1x := bx - ax | вектор AB
  v1y := by - ay
  v2x := cx - ax | вектор AC
  v2y := cy - ay
  v3x := dx - ax | вектор AD
  v3y := dy - ay
  v4x := dx - cx | вектор CD
  v4y := dy - cy
  v5x := bx - cx | вектор CB
  v5y := by - cy
  v6x := ax - cx | вектор CA
  v6y := ay - cy
  coord1 := v1x * v2y - v1y * v2x | [AB, AC]
  coord2 := v1x * v3y - v1y * v3x | [AB, AD]
  coord3 := v4x * v5y - v4y * v5x | [CD, CB]
  coord4 := v4x * v6y - v4y * v6x | [CD, CA]
  ответ := (coord1 * coord2 <= 0 и coord3 * coord4 <= 0)
конец программы
Вопрос: Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

Лучший ответ:
А вам никто еще руки не оторвал за такой код? Привыкли, что за вас компиляторы думают?
Например, проверять $a != $b внутри десяти вложенных циклов - это [к сожалению, цензурных слов не нашлось].
Кстати, РНР проверяет условия по порядку, и ставить первым самое тяжелое - это [ну, скажем, саботаж...].

Худший ответ:
Получается, насколько понял, 
JavaScript работает быстрее php только в Хроме за счёт V8 (исправленный код выполняется просто мгновенно),
PHP исполняет исправленный код секунды за две.
JavaScript в Firefox выполняется секунд 12.
Вопрос: Как обойти капчу в QIWI API?

Лучший ответ:
Никак.
Кроме ручного.
Есть сервисы, где сидит 1 млн. индусов и решает капчи за небольшую денежку.

Худший ответ:
Использовать RuCaptcha и ей подобные.
Вопрос: Можете пояснить как то доступно что такое json в php?

Лучший ответ:
Если тебе нужно передать с одной машины на другую (или из одной программмы в другую) строку - ты передаешь строку.
А если тебе нужно передать структуру данных, например несколько int, парочку строк, массив с вложенным массивом - вот тут можно упаковать весь набор данных в XML или JSON и передать, а на той стороне он распакуется сразу в готовую структуру.
JSON более компактный, XML более мощный.
И то и другое поддерживается в разных языках программирования из коробки.
Это если в двух словах.

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