Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Есть ли, хороший Google Material Design CSS Framework?

Лучший ответ:
Зачем, если есть https://github.com/FezVrasta/bootstrap-material-design

Худший ответ:
Кстати, а вообще, material design предъявляет какие нибудь требования к оформлению top menu? У него вся навигация всё больше по сайдбарам.
Вопрос: Mac OS на виртуальной машине

Лучший ответ:
Посмотрите здесь: установка Mac OS X Snow Leopard на виртуальную машину VMware в Windows. Сам не пробовал (т.к. есть Mac Pro), но установка MacOS на виртуальную машину вполне реальна.

Худший ответ:
поищите образы готовых виртуальных машин
Вопрос: Зачем ставят сервер баз данных на виртуалку?

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

Худший ответ:
Реальные проекты, особенно мелкие - часто на виртуалках.
Выделять каждому ученику реальный компьютер под базу данных - дорого, а учитывая, что для обучения нужна СЛОЖНАЯ база из 2.5 таблиц и 10 строк в каждой, то на одном компе можно целый класс виртуалок поднять для каждого, дешево и сердито.
P.S. Практически весь хостинг, на котором сейчас крутятся сайты - это ВСЕ виртуалки.
P.P.S. Весь бизнес по возможности также виртуализируют, если есть возможность. Исключения - высоконагруженные машины, и то... 
Виртуализация позволяет упростить процесс миграции, резервного копирования и т.д.
Вопрос: Экспресс курс по разработке под iOS. Есть варианты?

Лучший ответ:
По obj-c мне хорошо помог вот этот курс https://www.youtube.com/watch?v=ZqKbN_C4Yvg
Дядька довольно доходчиво и не нудно рассказывает, с примерами и домашками :)

Худший ответ:
Доки, Практика и статьи. Лучше посмотреть на каждый язык и определится самому с выбором.
Вопрос: Какой способ лучщий для авторизации REST API в сборке JS(клиент) и PHP(сервер)?

Лучший ответ:
В общем так, 2 дня шаманство и куча всяких бесполезных статей, я разобрался во всем.
Внедрение довольно простое. только вместо cURL использовл AJAX.Скрипт на PHP , пояснения тут.
Я не использовал последний пункт (Create an Authorize Controller), пока не понял для чего он. Если кто сможет, поясните.
Теперь JS:
1. Получаем токен через AJAX.$.ajax({
    url: "token.php", // Линк API обработчика.
    beforeSend: function(xhr) { 
      xhr.setRequestHeader("Authorization", "Basic " + btoa("testclient:testpass"));  // Логин и пароль по мануалу, заменить на свои после интеграции и сделать hash или md5 для пароля.
    },
    type: 'POST',
    dataType: 'json',
    data: {grant_type:"client_credentials"},
    success: function (data) {
      console.log(JSON.stringify(data.access_token)); // Проверка что токен получен. 
      localStorage.setItem('token', data.access_token); // Помещаем в LocalStorage для последующей проверки на других страницах.
      isAuth(data.access_token); // Запуск глобальной функции для проверки доступа, авторизирован или нет пользователь.
    }
});
собственно глобальная функция. function isAuth(token){
		$.ajax({
		    url: "resource.php",
		    type: "POST",
		    dataType: "json",
		    //contentType: "application/json",
		        data: {access_token : token},
		    success: function (data) {
		      console.log(JSON.stringify(data));
                      // Функция обработчик.
		    }
		});
	}
Все работает, теперь шаманить с конфигурацией и настройкой глобальных функций.

Худший ответ:
Я рекомендую Вам использовать открытый стандарт OAuth. Для API я использую авторизацию на основании токенов Bearer. Вот, например, реализация от Твиттера. У всех больших социальных сетей существуют соответствующие решения.
Вопрос: Как применить один JS-скрипт к двум разным объектам?

Лучший ответ:
$("#form1, #form2").on( 'submit', function(){ 
      console.log( 'Submitted #'+$(this).attr('id') );
} );
Идея в указании обеих форм в селекторе. А дальше, если надо унифицировать в чем-то - то определять по $(this).attr('id'), какая именно обрабатывается.

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

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

Худший ответ:
Какой-то слишком общий вопрос. Вы непонимаете, как делать проверку на соседние пустые клетки в двумерном массиве? 
Создаете функцию, где по циклу или отдельными проверками делаете так:
if (myarray[x+1,y]==1)
{
    return false;
}
и проверяете для всех нужных размеров. Сократить тут можно немного.
Вопрос: Будет ли оперативка с рабочей частотой 1866 норм работать на частоте 1600 c 4790k?

Лучший ответ:
теоретически - должна, в реале - 50/50.
память - это всегда лотерея. поэтому нужно брать с возможностью теста/возврата.

Худший ответ:
У меня оперативка 1600 работает на ноутбуке с частотой 1333, все ок.
Вопрос: Где найти рабочий кейлоггер?

Лучший ответ:
Punto Switcher обладает такой функцией, через настройки отключаются не нужные функции и прячется значёк из трея. Не просит оплаты. Из минусов — не может отправлять всё это на почту, но с другой стороны, если вы админ и сетка доменная, то доступ ко всем тачкам у Вас есть!

Худший ответ:
keylogger.ru — я там покупал… стоит копейки… работает на УРА
Вопрос: Возможно ли заблокировать флешку только для Windows?

Лучший ответ:
Отформатировать ее в ext4?

Худший ответ:
решил вопрос по другому - просто крыл файл attrib -s -h "fiтle patch" и все. Windows из никак не видит
Вопрос: Полный бэкап сервера?

Лучший ответ:
Я пользовался vmware converter для таких целей. 
В итоге получается виртуальная машина - полная копия сервера с центосом. 
Которую потом можно запустить хоть дома на домашнем компьютере.

Худший ответ:
Снять полный образ диска.
Вопрос: Можно ли как-то в linux установить драйвера от windows?

Лучший ответ:
Конечно  можно если они написаны на С и в исходниках.
Вероятность этого стремится к 0

Худший ответ:
Нет
Вопрос: Как сделать сайт высокой доступности?

Лучший ответ:
Есть несколько способов это сделать.
Первый. Обеспечить высокую доступность сервису который для этого не проектировался. Когда web серверы не имеют балансировщиков, когда mysql задумывался как один, когда приложения в одном экземпляре. Как уже сказали - воспользуйтесь услугами amazon. Elastic ip для переключения между серверами, RDS (mysql) с multi-az, elastic storage для файловой системы.
Второй, самый сложный, но правильный. Изменить архитектуру сервиса. Web серверы как отдельная часть должны балансировать запросы между backend частью. Приложение должно уметь само переключаться между mysql базами если один сервер упал. Репликация mysql между удаленными датацентрами это боль и страдания, в идеале она должна быть только для бэкапа. Если уже не уйти Mysql репликации, используйте percona xtradb cluster. Обращаться не напрямую в ее, а через haproxy, в котором нужно настроить проверку статуса реплик.
Короче говоря, все слои должны иметь как минимум одно резервирование. На уровне IP воспользуйтесь услугами датацентра.

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

Лучший ответ:
CTRL+F5 в браузере потыкайте несколько раз.

Худший ответ:
Может быть в кеше, а не пробовали вообще удалить css, чтобы проверить, что он подтягивает точно Ваш файл? Также возможно где-то выше этого кода в css идет ошибка, а код ниже уже не выполняется. Еще можно попробовать дописать !important к этому правилу и проверить, заработает или нет.
Вопрос: Проблема с Python- скриптом?

Лучший ответ:
Вангую, что в бесконечном цикле вылетает Exception - скорее всего где-то в requests (Сервер не ответил или еще что-то)
Пропишите в rc.local /path/to/yourscript >/tmp/script.out 2>&1
И потом смотрите /tmp/script.out на наличие ошибок.
Самое главное - глазами увидеть сообщение об ошибке - а не просто "скрипт отваливается"
Суть в том, что если проблема в скрипте, то выдаст ошибку в stderr и помрет. Так как у вас несколько мест в программе обернуто в try...except без указания Exception (гуглите почему так делать плохо) - то скрипт не помирает а продолжает выполняться (при этом возможно уже все пошло вкривь и вкось и ничего нормально не выполняется, скрипт работает но неверно)
Конкретно, меня смущает эта часть:try:
        request = requests.post(URL + TOKEN + '/getUpdates', data=data) # Отправка запроса обновлений
    except:
        log_event('Error getting updates') # Логгируем ошибку
        return False # Завершаем проверку
Здесь мы видим что при возникновении любого исключения, выполняется  log_event(...)
Смотрим туда, и видим многообещающее ToDo:def log_event(text):
    """
    Процедура логгирования
    ToDo: 1) Запись лога в файл
    """
    event = '%s >> %s' % (time.ctime(), text)
    print event
То есть некое сообщение будет записано в stdout, и о том какое конкретно исключение произошло можно догадываться только косвенно. 
Вообще, надо сначала разобраться почему скрипт ничего не пишет в telegram.out и telegram.err - пустым, по крайней мере telegram.out быть не может
попробуйте такой скрипт:#!/usr/bin/python
print "hello world"
print("hello world')
запустить точно так же:
/usr/bin/python /home/pi/script.py >> /home/pi/script.out 2>> /home/pi/script.err 
Это перенаправление вывода, то есть то что в обычном режиме вы должны увидеть в косоли, должно появиться в этих файлах. Начните с этого.

Худший ответ:
1) Добавил #!/usr/bin/python
2) Выставил права на файл /home/pi/telegram.py    755 rwxr-xr-x
3) Выполняется
4) Выполняется
5) echo "hello" > /tmp/script.out не выполняется (нет файла /tmp/script.out). В тоже время запись 
 python /home/pi/telegram.py
прописанная в rc.local выполняется тк telegram.py стартует вместе с системой.
6) Выполнение данного пункта привело к появлению в /home/pi/ двух пустых файлов: telegram.out и telegram.err .
Итог: тк скрипт отваливался при падении инет-соединения, после выполнения п.1, распберри была отключена от инета на полчаса. После подключения инета скрипт продолжил нормально исполнять команды. Значит п.1 - возможное решение проблемы. Но остались проблемы с rc.local))
Вопрос: Что это за фотофильтр?

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

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

Лучший ответ:
Может CRON поможет?

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

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

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

Лучший ответ:
Где вы работаете с GroupBox'ами? Вы ведь их даже задействовали нигде. При размещении на Layout все кнопки открываются в отдельных окнах.Вы пробовали действовать не только методом тыка, а еще и книжку по Qt почитать?

Худший ответ:
Согласен с предыдущим оратором.
Я же тебе в прошлом посте дал ссылку. Читай до просветления. Элементарные вещи же. Не знаю, видео на ютубе посмотри что ли...
Вопрос: Идеи для Javascript приложений

Лучший ответ:
Todo. И просто, и можно потом посомтреть множество примеров, как оно реализовано на разных фреймворках на todomvc.com . Затем выбрать фреймворк, который больше нравится.

Худший ответ:
todomvc.com
сайт посвящен приложению Todo, написанного с использованием наиболее популярных js framework' ов
Вопрос: Как интегрировать систему контроля версий в процесс разработки?

Лучший ответ:
Собсно, как делаем мы - toroid.org/ams/git-website-howto . Это процесс деплоя. В свой локальный репозиторий добавил два ремоута - prod & test. Собсно сначала выкладываю на тест одной командойgit push test master
потом, если всё хорошо, уже на продgit push prod master
Если нужны какие-нибудь пост-обработки, то они происходят на сервере через хуки гита.

Худший ответ:
Я бы начал с публичного сервиса как Github. Так много иснтрументов уже есть. Так же можно создовать приватные репозитории. Это платно но не дорого. Меня не напрягает.
Так же Гитхаб можно быстро интегрировать в разные слжубы напримет Windows Azure. Если в вас сервера там то можно организовать развертку автоматическую в один клик настроить. То есть один момент после того как вы все отправли на гитхаб это уже доступно на сервер для ручного тестирования.
Если хотите unit test или подобное так как сейчас очень много разных решений и разные хороши для разных задачь, то тут нужно использовать grunt а лучше gulp. Это позволит автоматизировать процесс тестирования и развертки.
На последок мотиватор. Я помню когда мы тоже работали без системы котроля версий. И помню как было тяжело внедрять в привычный процесс производства новую технологию. Казалось даже что она только мешает, и понижает производительность. Но со временим, когда все привыкли, мы не мыслим процесс без этого. И мы так рады что перешили на эти технологии. 
Так что удачи.
Вопрос: Как выполнить функцию при достижении div?

Лучший ответ:
Вы можете поискать готовые решения или напишите сами.
Вот я писал для каких-то вопросов, будет что-то непонятно — пишите
codepen.io/iiil/pen/lLuys
codepen.io/iiil/pen/Lczgi

Худший ответ:
А почему бы не использовать js.
Вопрос: Почему раз в месяц из таблицы БД могут удаляться строки? Как найти дыру?

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

Худший ответ:
вопрос однозначно рассчитан на телепатов...
проверить кроны других пользователей системы, смотреть логи апача, ковырять логику системы
Вопрос: Перенос настроек Sublime Text 3 в Dropbox?

Лучший ответ:
Sublime почти не развивается.
Просто используйте портабельную версию. Сможете копировать и бекапить куда угодно.
Все настройки будут в каталоге с программой.

Худший ответ:
На винде вроде бы так было:
cd C:\Program Files\Sublime Text 3\Data\
mklink /D "Installed Packages" "C:\Dropbox\work\Sublime Text 3\Data\Installed Packages"
mklink /D "Packages" "C:\Dropbox\work\SublimeText 3\Data\Packages"
mklink /D "Pristine Packages" "C:\Dropbox\work\Sublime Text 3\Data\Pristine Packages"(открываешь консоль, переходишь в папку, вбиваешь команды со своими путями)
Вопрос: Стоит ли отказываться от JS в мобильных версиях сайта?

Лучший ответ:
наоборот аякс будет экономить трафик. Просто надо писать на "чистом" js
В идеале вообще заюзайте  HISTORY api

Худший ответ:
В принципе, верно все написали, что экономить трафик вырезанием JS - не лучшая история. Однако, лично меня жутко бесят сайты, что нагромоздили JS донельзя и что не ткнёшь пальцем - подвисает на пол секунды. Сам по себе браузер вещь довольно громоздкая и жрёт ресурсы неимоверно, а JS рад украсть ещё пару... миллионов тактов. Тогда как по производительности нынешние мобильные камни едва догоняют Pentium D, а это, простите, лет десять назад когда рендер JS-ом ещё только появлялся, а красивые странички напичканные (или полностью из) флешем (который имел GPU-ускорение) были пиком моды.
Так что по правде - важно соблюдать компромисс. Да где угодно его важно соблюдать - пока грузится голый html, а потом рендерится JS-ом ещё несколько секунд (ибо не сразу всё подгружается) и начинает сиять всеми цветами радуги - чувствуется вся убогость www. Просто помните, что Вы пишите под браузер, который далеко не такой умный и быстрый, как хвалят его в Google, Apple, MS или Mozilla, а наоборот - неповоротливый, жадный до ресурсов и очень зависимый от качества Интернет-соединения.
Так что вот правильный воркфлоу: Рендер на сервере в html.  Упаковка JS и CSS скриптов в один .js и .css файл соответственно.  Сжатие GZIPом упакованных .js и .css файлов и рендеренный .html файл.  Передача сжатых данных на клиентское приложение (браузер). 
А вот небольшие наблюдения по поводу JS: Прототипное наследование жутко медленное. Как, впрочем, и работа со списками (массивами). Математика и управляющие выражения с циклами в цел.... Библиотеки по умолчанию очень тормозные. jQuery в целом адекватная. Если очень нужна производительность - WebGL и asm.js - жутко быстрые.
Вопрос: Как спрятать пути JS?

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

Худший ответ:
Если я правильно понял то Вам надо вместо $.get(dle_root+"engine/ajax/nw.php") сделать что то типа $.get("/ajax") или $.get("/get.ajax") или еще как нибудь. То как вариант сделать роутинг на вебсервере...
В Apache можно через mod_rewrite (.htaccess) прописать, а для nginx в конфиге можно роутинг сделать...
Вопрос: Обработка немного разных структур одной функцией в C++

Лучший ответ:
template метод? Или унаследовать эти две структуры от общего предка?

Худший ответ:
Создай отдельную функцию foo для работы с elements [5]. Потом создай две функции для работы  с разными структурами и используй в них foo.
Вопрос: Как уменьшить окно симулятора в Xcode?

Лучший ответ:
Выбрал симулятор и Ctrl-2, Ctrl-3, Ctrl-4.

Худший ответ:
Параметр Scale в настройках симулятора -> вместо 100% выбрать меньше
Вопрос: Стоит ли сменить linux ubuntu на windows 10?

Лучший ответ:
ОС это только инструмент: например суп удобно есть ложкой, а спагетти вилкой =)
Никто кроме вас не может оценить ваших задач и потребностей, пока сами не попробуете - не узнаете.

Худший ответ:
для linux ОС есть програма gimp, использую её, лчно мне хватает :) скачайте плашины для гимпа и будет всё то-же, что и в photoshope
Вопрос: Кластеризация сервера

Лучший ответ:
Если каналы между серверами хорошие, то Вам подойдет NFS, GlusterFS, Lustre и т.п.

Худший ответ:
А точно кластер нужен? Может просто на серверах 2 и 3 nginx попросить ходить за картинками на сервер 1? Извращений можно придумать много — начиная от того, что хранить картинки в БД в blob'ах, заканчивая внешним стекляным рэйдом.
Вопрос: Не пойму почему код работает?

Лучший ответ:
При создании объекта Tour, создаётся его метод cost. Значение типа функция помещается в поле cost объекта, this - псевдоним объекта.
Так как cost использует переменную price, объявленную при создании объекта, она становится замыканием и у функции cost есть к ней доступ.
И на конец при вызове функции cost, она получает переменную nights и умножает её на уже сохранённую переменную price.

Худший ответ:
js оопjs замыкания
Вопрос: HTML5 и CSS3 какой из этих учебников выбрать?

Лучший ответ:
Ваш мозг, интернет и тематические сообщества - лучший учебник...
Пояснять "почему" ?

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

Лучший ответ:
а что не работает???? пруф

Худший ответ:
а что не работает???? пруф
Вопрос: Какой выбрать прокси сервер / дистрибутив с встроенным прокси+статистика+webadmin?

Лучший ответ:
Самому все настроить и необходимое написать

Худший ответ:
m0n0wall, IPCop пробовали?
Вопрос: Можно как-то отключить возможность скачивания ПДФ файла при просмотре браузерным просмотрщиком?

Лучший ответ:
На самом деле всё зависит от того, на сколько Вы хотите затруднить скачивание, и нужно ли Вам определить кто выпустил от Вас пиратку. В общем случае защиты нет - можно к примеру заскриншотить.
Есть просмотрщики с конверторами на флеше (хотя это сейчас не модно, у меня он выключен)
Идеи по уровням как это сделать:
1. преобразуете PDF в картинки, и показываете их.
2. 1 + ватермарк с сессией (чтобы пирата определить)
3. 2 + картинки деелается как пазл, на клиенте пересобирается.
4. 3 + canvax & xor engine. Пиксели анимируются, так чтобы глаз воспринимал их как цельную картинку, но на скриншоте был мусор
5 ....
Фантазии полёт безграничен

Худший ответ:
Один из вариантов - это выдавать на клиент не конечный документ, а контейнер-просмотрщик, например на flash. Таким образом даже в кэше на клиенте оказывается только сам просмотрщик, а не документ. Flash  в свою очередь так же должен запрашивать документ не напрямую а через прослойку + авторизация.
Можно еще для пущей защиты на принтскрин "затенять" документ, но это конечно не убережет вас о от фотографирования экрана и снятия скринкаста. Абсолютных решений защиты данных до которых пользователь Уже получил доступ не существует, как минимум он их может переписать на листок или просто запомнить. Так что при постановке задачи нужно выработать четкие требования к уровню защиты и придерживаться их.
Вопрос: Не конфликтуют ли Apache и node.js одновременно установленные?

Лучший ответ:
Нет

Худший ответ:
Нет
Вопрос: Как на Jqurey сделать актитвное вкладку?

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

Худший ответ:
Тут описано как просто делать такие вещи: https://habrahabr.ru/post/272125/
Вопрос: Как вы относитесь к тестовому заданию ДО собеседования?

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

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

Лучший ответ:
Может вы коннектитесь к mysql на каждую строчку?

Худший ответ:
Что-то не так с ресолвом DNS. У Windows помнится это частенько бывает.
1) Проверьте что в hosts есть запись для localhost
2) Нужно смотреть настройки mysql.
Вопрос: Почему в jQuery событие scroll не работает при body margin: 0;?

Лучший ответ:
Жесть я 1.5 дня искал эту же ошибку у себя в JS, наткнулся на этот вопрос поиграл со стилями, в результате у меня было свойство body {height: 100%},  поэтому webkit"овские браузеры не запускали событие scroll()... это так если кто в будущем столкнется с этим, автору отдельное спасибо за вопрос =)

Худший ответ:
Пример бы, где не работает. Здесь (на Тостере) при цеплянии приведенного скрипта alert отрабатывает, несмотря на margin:0; для body. 
Ну и еще работающий пример.
Нужно больше информации. Может быть другие скрипты или еще что?
Вопрос: Почему при слиянии веток открывается vimdiff с тремя окнами?

Лучший ответ:
Должно быть, это стандартный вид для 3-way merge -- общий предок, изменения в одной ветке и изменения во второй ветке.

Худший ответ:
наверняка в hg есть варианты алисаов или настроек diif-tools (в git точно есть) можно указать вместо открытия трех файлов только два
Вопрос: PHP: работа с XML

Лучший ответ:
SimpleXML.
В ядре по-умолчанию.

Худший ответ:
С генерацией думаю проблем нет, а вот с парсингом — для мелких XML (запрос/ответ) использую Simplexml (simplexml_load_string() ), полученый в результате объект бывает потом удобно преобразовать в ассоциативный массив. Для крупных XML — xml_parse().
Вопрос: Чем закачать сайт полностью, минуя формы и кнопки?

Лучший ответ:
А вы смотрели wget? Скачивает все, что доступно по ссылкам. Очевидно, что если что-то по ссылкам не доступно, то автоматически оно скачано быть не может.

Худший ответ:
Утилита lftp
Команда mirror -c --parallel