pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Почему странно работает цикл?

Лучший ответ: Думаю, не стоит определять функцию во время цикла. Так должно сработать. var _a = document.querySelectorAll('.a'),
      _b = document.querySelectorAll('.b');

function cc(a) {
  console.log(a);
}

for(var i = 0; i < _a.length; i++){
      _a[i].addEventListener('click', cc(_b[i]),false);
      _b[i].addEventListener('click', cc(_b[i]), false);
}

Худший ответ: Всё объясню:Как работает код:
Находятся элементы на странице и помещаются в массив x = [0, 1, 2];
Начинается цикл объявлением глобальной переменной i = 0;
Затем идет проверка, и если i < длины массива, то:
1) на div вешается функция слушатель для нажатия с функцией function(){console.log( _x[i] )
2) глобальная переменная i увеличивается на единицу.
Когда i достигает значения больше индексов массива (i = 3, не проходит проверку) цикл прекращается.
Теперь мы наводим курсор на div и кликаем:
Слушатель запускает функцию function(){console.log( _x[i] )
Функция пытается найти i.
Так как внутри функции переменная i не была определена, она обращается к глобальной области видимости.
В глобальной области видимости переменная i == 3, по такому индексу в массиве ничего нет - функция пишет в консоль undefined.Как исправить:
Создать функцию, которая будет создавать функции с определенным индексом и вызывать её в цикле:var _a = document.querySelectorAll('.a'),
      _b = document.querySelectorAll('.b');

function f_console_log_B_for_index(i) {
      return function(){console.log( _b[i] );}
}
function f_console_log_A_for_index(i) {
      return function(){console.log( _a[i] );}
}
for(var i = 0; i < _a.length; i++){
      _a[i].addEventListener('click', f_console_log_A_for_index(i),false);
      _b[i].addEventListener('click', f_console_log_B_for_index(i),false);
}
В такой создаваемой функции значение переменной i будет таким с каким вызвали функцию, создавшую её.
Прочитайте про области видимости и замыкания.
Вопрос: Какой выбрать ВУЗ для получения знаний в области web-технологий?

Лучший ответ: Выбирайте прикладную математику. Для начала учитесь программировать не на PHP, Python или Ruby, а на C/C++, C#. Параллельно с учебой занимайтесь самообразованием. Вот здесь как раз уже и изучайте PHP, Python и прочее. Без знаний основ, алгоритмов Вы нафиг никому не нужны будете. Таких как Вы будет много.
Веб-технологии лучше начать изучать самому и можно дойти до приличного уровня. В институте дают только самые низы, которые подталкивают на изучение высот.
Много таких людей как Вы из 10-11 классов, думающих, что им не нужно ничего, кроме PHP и JavaScript и кое-как шлепать сайтики.Запомните мой совет.

Худший ответ: Вы без ВУЗа PHP и JS изучить не можете?
Обычно в ВУЗах в РФ если и есть что-то по вебу, то на 3-4+ курсе и не много. Вобщем-то как и с другими практическими знаниями по программированию.
Вообще по идее практические знания больше должны быть в ПТУ (или как там они называются), чем в ВУЗах.
Ну или на курсах каких-нибудь типа Специалиста.
Вопрос: Как изучить backbone.js?

Лучший ответ: раздватричетыре

Худший ответ: пять
Вопрос: Есть ли такой плагин для Gulp или NPM?

Лучший ответ: В jade можно переиспользовать блоки, в gulp чот не встречал.

Худший ответ: Подобные вещи легко реализуются через handlebarsjs.com/. Там есть циклы, но в отличие от JADE синтаксис у Handlebars такой же, как у обычного HTML. А плагин для компиляции есть под gulp, естественно.
Вопрос: If (value == null || value.equals(null)))?

Лучший ответ: Для определенного объекта может быть переопределен метод equals(). 
Например, по задачам бизнес-логики объект считается null если его "самоеГлавноеПоле" есть null. 
В данном же случе - либо старый неисправленный код (раньше параметром приходил не Object а что-то другое) либо банальная ошибка. 
А вообще, в случае с пользовательским классом второе условие без первого может сработать. 
Например: package tk.lslayer.temp;

public class NullComparator {
    public Integer someField = null;

    @Override
    public boolean equals(Object obj) {
        if (obj == null && someField == null) return true;
        if (obj != null && obj instanceof NullComparator) {
            return ((NullComparator) obj).someField == someField ? 
                true : false;
        } else return false;
    }

    public static void main(String[] args) {
        NullComparator comparator1 = new NullComparator();
        
        if (comparator1 == null)
            System.out.println("!= null");
        if (comparator1.equals(null)) 
            System.out.println(".equals(null)");
    }
}

Худший ответ: я думаю, что тут специальная магия для обработчки json'a.. предположим, что value - некий JsonItem, который хранит в себе значение, это значение может быть null'ом, для этого и сделана вторая проверка
Вопрос: Какие сертификации высокого класса для ит-специалиста вы знаете?

Лучший ответ: Сертификация Red Hat
А если конкретнее, то Red Hat Certified Architect



Худший ответ: Ещё есть VMware Certified Design Expert (VCDX).
Вопрос: Удаленное обучение, первое высшее

Лучший ответ: Это либо платные удалённые курсы по технологиям администрирования Windows/Linux/cisco, либо работа с железками (сервера, накопители) крупных брендов, либо обычный путь от эникея до архитектора, включающий в себя как опыт работы так и курсы.

Худший ответ: Ну ещё как вариант, для корочки — http://mti.edu.ru/entrance/undergraduate/ivt/vmksis
А так да — курсы повышения квалификации, как правильно сказал foxmuldercp
Вопрос: Онлайн сервис построения графиков

Лучший ответ: первое что приходит в голову, это конечно google charts )
code.google.com/apis/chart/

Худший ответ: В случае если нужно построить простой график по точкам, которых много и нужно подстроится под формат данных:
www.ninetysix.96.lt/russian.html
Вопрос: Какие аудио курсы изучения английского языка скачать/купить?

Лучший ответ: Во-первых, курсы на русском языке крайне не рекомендую. Сбивает мышление. Нужно сломать барьер - начать мыслить на английском. Если будет половина на русском, половина на английском - так не работает.
Когда ломается барьер - удивительное ощущение. Это можно описать, примерно так: до этого вы все время, когда слышали "Red", думали, что это "Красный". После ломания барьера, вы слышите "Red" и понимаете, что это именно "Red". Red - это не красный, это red :). Сложно объяснить, но примерно так :).
По существу: рекомендую курс "Power English" от A.J. Hoge.
Слушал в машине по пути на работу, час в день.
За полгода поднял уровень от intermediate до fluent. Смотрю фильмы и курсы без субтитров. Легко понимаю собеседников и легко разговариваю.
Курс основан на подходе "ключ к языку - не глаза, ключ к языку - уши".
На этом же подходе основан курс Пимслера. Но Пимслер - скучный. AJ Hoge - гораздо веселее и не надоедает.
В этом курсе не тупое повторение, а интерактив - простые ответы на простые вопросы.
Взять можно тут (либо на трекере):
effortlessenglishclub.com
Есть еще более старые курсы этого автора - Effortless English. Там можно начинать с уровня beginner и ниже.

Худший ответ: А смысл? Без практического применения - деньги на ветер.
Вопрос: Стили для FileUpload в twitter bootstrap?

Лучший ответ: средствами css — нет

Худший ответ: Можно сделать простую обвязку.
jsfiddle.net/xgqGR/
Вопрос: Как сделать «наложение » газеты в руки человека на фото?

Лучший ответ: > Фото должно быть оригинальным, без сжатия или другой обработки в графических редакторах, сделанным на цифровой фотоаппарат.
Берешь девушку, даешь ей газету, фоткаешь на фотоаппарат и получаешь то, что требуется.
Если попытаешься делать монтаж, не забудь, что сам файл с картинкой в результате должен иметь теги, соответствующие какому-нить фотоаппарату, иначе даже без анализа пикселей будет видно, что подделка. И большая вероятность, что именно проверкой тегов могут и ограничиться.

Худший ответ: Ну можно попробовать задать запрос-коллаж. А что, хороший приз?)
Вопрос: Простой, но удобный менеджер шрифтов под Windows?

Лучший ответ: AMP Font Viewer
http://www.ampsoft.net/utilities/FontViewer.php

+ Бесплатный
+ Легковесный
+ Простой и удобный интерфейс
+ Быстрая установка новых шрифтов
+ Выбор отдельной папки с шрифтами
+ Просмотр установленных в системе шрифтов

 — Для 7/Vista пользователей необходимо запускать программу от с правами администратора (или жестко указать тип запуска от админа в ярлыке программы)

Худший ответ: Штука старая, но очень удобная FontMassive
Вопрос: Как лучше переносить файлы с локального сервера на удалённый?

Лучший ответ: rsync через ssh

Худший ответ: возможно тогда подойдёт:
rsync с демоном на целевом сервере или
rsync по ssh
Вопрос: Как автоматизировать процесс торговли?

Лучший ответ: ЭльбаМое дело

Худший ответ: А что конкретно нужно автотизировать??
ИП - это лишь форма собственности юр. лица. А сама специфика бизнеса бывает разной.
В зависимости, от особенностей бизнеса и автоматизация бывает разная :)
В некоторых случаях, например, это просто CRM.
Вопрос: Виртуализация VT-X перестала работать. В чем может быть проблема?

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

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

Лучший ответ: Буду писать сам, всем спасибо :)

Худший ответ: wordpress и joomla прекрасно с этим справятся (с доп. модулями, конечно, а не из коробки).
с drupal мало знаком в плане выбора модулей, но, думаю, что тоже не возникнет проблем.
Вопрос: Обсуждение интернет-бизнеса в Facebook

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

Худший ответ: вероятно, происходит это на стенах популярных персонажей. Вам нужно найти известных людей в ФБ и зафрендить их.
Второй вариант, в котором я сомневаюсь — тематические группы в том же ФБ. Но это вряд ли.
Вопрос: Подойдет ли этот MacBook Pro для UI дизайнера?

Лучший ответ: Подойдет

Худший ответ: У меня тут родился вопрос. Как окупить Мас в разумные сроки?
Вопрос: Где и как обучиться оптимизации\продвижению\seo сайтов?

Лучший ответ: Начните с базового и постепенно переходите на изучение сложных вещей: кейсы, аналитика, анализ оптимизированных сайтов.Прочитайте Яндекс.Помощь для Вебмастеров: Информация на сайте, в PDF-формате Google.Помощь для Вебмастеров для начинающих: Руководство по SEO, есть версия в PDF - хоть старенькое, но информация актуальнаИзучите исследования SEO от ТопЭксперт Зарегистрируйтесь на профильном форуме SearchEngines.ru Читайте публикации на SEONews.ru Найдите и подпишитесь на рассылки известных SEO-блогеров. Например, ADNE.iNFO,  Devaka.ru, Maul.net, Александр Люстик, Алексей Терехов - кто-то занялся другим направлением, кто-то перестал вести блог, но если попользоваться поиском и посмотреть архив публикаций, есть море чего полезного.Подписаться в Twitter на активных SEO-блогеров: список-1, список-2, английские лентыИзучайте информационные бюллетени и исследования ЯндексаПодписаться на пресс-релизы ЯндексаПрочитать всю информацию по поисковым технологиям ЯндексаЧитать публикации клуба Яндекс.ПоискМожно подписаться на аккаунты Яндекса в TwitterПрочитать справку Яндекс.Метрики и Google.Analytics - это поможет при дальнейшей работе с сайтами, во время отчетности и другого анализаИзучить сайты крупных SEO-компаний, это поможет сформировать схемы работы продвижения: по трафику, по позициям и пр. И сформируется представление по рынку услуг SEO. Рейтинги компаний есть на SEONews.ru.Посмотреть 200-факторов от GoogleЕсть ещё пункт по ПО, но это отдельно, наращивается какая-то база своих программ. Сперва поработайте руками, для понимания механики.Тоже, как Nidora, рекомендую прочитать книгу Ашманова - оптимизация и продвижение сайтов в поисковых системах. И ссылка на полезные книги.И всегда быть в курсе актуальных новостей SEO
По терминологии сами всё поймете, когда начнете изучать.
Материала Вам хватит на пару месяцев. enjoy!

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

Лучший ответ: Да

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

Лучший ответ: А размыкать не надо? транзистор кондер и резистор уже не в моде?

Худший ответ: Нет ничего проще:
www.ebay.com/itm/250659861335
Вопрос: Защищает ли PDO от SQL-инъекции?

Лучший ответ: Защищенность PDO от инъекций строится на использованании не динамически создаваемых запросов, но запросов с параметрами. Любой момент изменения запроса в коде под какие-то (часто необдуманные) нужды приводит к возможности инъекции.
пример вам уже привели, повторю его:$qry = 'select * from users where user_id='".$usrname.'" and passwd='".md5($passwd.'$salt).'"';
запрос подвержет инъекции: достаточно подсунуть имя с двойной кавычкой и далее через точкузапятую свой запрос. Остаток с паролем комментируется символами:$usrname = '"; update users set passwd="12345" where id="admin"; -- ';
 приведет фактически к такому запросуselect * from users where id=""; update users set passwd="12345" where id="admin"; -- passwd=''
совсем другое дело PDO. Он не допускает мультикомандные запросу как факт (то есть после первого select обработка не пойдет). А во вторых указанные инъекции просто запицется в параметры запроса, что будет обработанно корректно.

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

Лучший ответ: А что там сложного, тем более проводка внутренняя вся будет. Можно просто патчкорд длинный заказать, чтоб со сваркой не мучиться, и в гофре его кинуть, можно кабель для внутренней прокладки воткнуть.Длина сегмента может быть весьма продолжительной, верно? Речь о (навскидочку) не более 200 метрах.
Может вообще не заморачиваться с волокном? (S)FTP-кабель, коммутатор или регенератор в промежуточном подъезде поставить?Как подключить эту оптику к свитчу или роутеру?
Можно через медик, можно воткнуть SFP-модуль в коммутатор-маршрутизатор, если есть необходимые оптические порты (или слот под плату).Медиаконвертер это глупое устройство или там свои заморочки?
Глупое. Главное, чтоб один с другим совместимы были. Скорее всего для этого проще взять 2-х волоконные медики, у них работает прием и передача на 1310нм. Ну и потом не перепутать, куда воткнуть прием, куда передачу.Насколько это вообще надёжно?
В чем надежность измерять собрались? Естественно, все рухнет, если кабель оборвут. И работать с потерями будет, если разварят херово. Ну или вообще не будет)Какие порядки цен на такие решения? Понятно, что всё зависит от обстоятельств, но порядки
Это не часто заказывают, у всех разные предложения. Для оператора цены будут одни, для сетевой конторы другие, для мелких офисов третьи. И все зависит от региона. Запросите коммерче Примерные цены можно на наге посмотреть. Да и все же, как решите делать. Дешевле всего - патчкорд 200 м ориентировочно 4-5 тр, два медика по 2.5 тр, гофра на 1 тр. Итого без монтажа 11-12 тр. Цены ориентировочные на оборудование можно посмотреть, например, на наге.

Худший ответ: 1 найти способы протяжки или по крыше или наружная протяжка 
 цены , смотри сколько стоить 1 метр оптики у вас + одно волокно 5 -10 баксов сварка , протяжка тут надо смотреть по месту 
2 оптику надо оконектить  поставить фоб  , сварить и вывисти пиктейлы ,
подключать ее можно Медиаконвертер  или в сфп  разём на свитчах с двух сторон , понимать какая оптика будет одномод или многомод и выбирать оборудование под эти цели 
3 надежно 100 % 
вот и будет после этих действий вам цена
Вопрос: Стиль версти спасающий от запутанности?

Лучший ответ: БЭМ

Худший ответ: Странно, никогда такой проблемы не было – посмотри БЭМ действительно ( ту часть, как они стили пишут ). Про их остальные технологии лучше не читай – понапридумывали ...
Вопрос: Pidgin — проблема приема сообщений в кодировке cp1252 / Ubuntu 10.10 x64?

Лучший ответ: В настройках учетной записи на вкладке «Дополнительные» какая кодировка стоит? Если ISO-8859-1, то измените на cp1251. Если не поможет прочтите этот топик: unixforum.org/index.php?showtopic=100945

Худший ответ: Еще одни наблюдения с указанием кодировок для протокола:
http://forum.ubuntu.ru/index.php?topic=13717.msg276639#msg276639
Вопрос: Хочу переучиться на C# или Java программиста. Что сейчас перспективно?

Лучший ответ: Стандартные проблемы интерпрайза, много легаси, много формальностей, много корпоративных норм. Запросто могут не взять на работу из-за отсутствия диплома или например из-за непрофильного образования, запросто может быть длительное собеседование с вопросами не по теме, просто потому что таковые корпоративные нормы. В качестве награды зарплата и карьерный рост, но не всегда профессиональный, шансы попасть на новый проект с интересными задачами точно такие же как и попасть на легаси. Конкретно по C# vs Java это просто выбор вендора, путь развития абсолютно одинаковый, изучение экосистемы Oracle\Microsoft и получение время от времени сертификатов. Смотрите что в вашем городе более развито, есть ли центры сертификации, то и выбирайте. Как по мне то C# более няшный.

Худший ответ: ИМХО, работая на дядю - не заработаешь.
Если хочется драйва - начинай свое.
Вопрос: Аналог символа @ для тудулиста на русском

Лучший ответ: В русской раскладке клавиатуры вообще куда меньше спецсимволов: есть только знаки препинания («.», «,», «;», «:»), знаки интонации («!», «?»), знаки арифметики («+», «-», «/», «\», «=»), скобки («(», «)»), двойная кавычка («"»), номер («№»), процент («%»), подчёркивание («_»).

Это и всё.

Ни один из этих знаков адекватною заменою «@» мне не кажется.

Худший ответ: Как вариант — слова написанные капсом воспринимать, как ключевые. "Ужин с женой ДОМА"
Вопрос: Как в WPF создать кнопку, при наведении на которую, под текстом появилась горизонтальная черта?

Лучший ответ: В качестве промежуточного решения может подойти следующее.<Button >            
    <Run>
        <Run.Style>
            <Style TargetType="Run">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="TextDecorations" Value="Underline" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Run.Style>
        Текст
    </Run>
</Button>

Худший ответ: Возможно поможет Hyperlink:<TextBlock >
    <Hyperlink Click="Hyperlink_OnClick"></Hyperlink>
</TextBlock>
Вопрос: Как сгруппировать строки c картинками в excel средствами PHP?

Лучший ответ: SilverSlice  Спасибо за наводку! Не много скорректировал PHPExcel и все получилось, но при условии что картинка в пределах одной ячейки (мне нужно было для прайс-листа). Если картинка вылазит за пределы этой ячейки нужно будет еще думать.    
В PHPExcel есть метод setResizeProportional, но он вообще ни где не задействован в  PHPExcel/Writer/Excel2007/Drawing.php @version    1.7.9. 
Добавил корректировки в функцию public function _writeDrawing у меня это 172 строчка: 
Было :$objWriter->startElement('xdr:oneCellAnchor');
Стало: $aResizeProportional = $pDrawing->getResizeProportional();

			if ($aResizeProportional) {
				$objWriter->startElement('xdr:twoCellAnchor');
			}
			else {
				$objWriter->startElement('xdr:oneCellAnchor');
			}
И еще одна правка чуть ниже
Было :// xdr:ext
					$objWriter->startElement('xdr:ext');
						$objWriter->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth()));
						$objWriter->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight()));
					$objWriter->endElement();
Сталоif ($aResizeProportional) {
					$objWriter->startElement('xdr:to');
						$objWriter->writeElement('xdr:col', $aCoordinates[0] - 1);
						$objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetX()) + PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth()));
						$objWriter->writeElement('xdr:row', $aCoordinates[1] - 1);
						$objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetY()) + PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight()));
					$objWriter->endElement();
				} else {
					// xdr:ext
					$objWriter->startElement('xdr:ext');
						$objWriter->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth()));
						$objWriter->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight()));
					$objWriter->endElement();
                }
Когда создаем объект добавляем это:$objDrawing->setWidth($width);
$objDrawing->setHeight($height);
$objDrawing->setResizeProportional(true); 
$objDrawing->setWidthAndHeight($width,$height);

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

Лучший ответ: 1) Для Яндекса, Гугла и т.д. нужно разбираться в математике и алгоритмах. Если идёте на должность разработчика, то разберитесь в этом…

2) Дальше нужны знания ООП, паттерны проектирования. Книги все на слуху, но если вы не в курсе, то могу порекомендовать несколько.

3) После всего этого можете начинать разбираться с Java. Также можете попробовать Python. Обе компании работают с этими языками. Если хотите быть оригинальным и пойти в Google, то учите Go :)

Тут вам советуют оставаться с PHP… В целом, отчасти это правильно. Но в Java я думаю вы лучше поймете, что такое ООП и паттерны. А также узнаете, про IoC, OSGI, Maven и много других интересностей. В PHP конечно есть жалкие попытки кое-что из этого клонировать на свою платформу, но как правило всё это выглядит жалким… Так что лучше учиться на оригиналах.

По времени у вас это займёт очень много (как минимум года 2)… Так что можете поразбираться в первых двух пунтках и идти на позицию студента, где будете учиться и разбираться в Java, Python, PHP и любом другом языке, по которым вам дадут работать.

Худший ответ: А вообще, на вашем месте не отчаиваться — немного пересидеть депрессию и дальше с новыми силам долбить собственные проекты :)
Вопрос: Сертификация ZCE — как лучше готовится?

Лучший ответ: Только сегодня сдал тест.
За это время ничего не изменилось. study guide + Practice Test Book (second edition) + php.net вполне хватает.
Мне очень помогли эти конспекты: 
f.cl.ly/items/3g0w352w3K0k3K3N2r1Q/ZCE_Certification_Short_Tutori.pdf
readtheweb.info/wp-content/uploads/2008/06/paul_reinheimer-zce.pdf
readtheweb.info/index.php?s=Zend+PHP+5+Certification+Exam&submit=Go
blog.karolsojko.com/index.php/tag/zce/
Дампы старых вопросов:
zend-php.appspot.com/questions_list
+ почитайте эти статьи:
dustinmoorman.com/2012/09/23/passing-the-php-5-3-certification-exam/
www.smartango.com/it/blog/zce-php-53-zend-certificated-engineer-exam-more-extensive-report

Этого вполне достаточно. Платить за дампы $99 как предлагают выше, не советую. Лучше сразу идите на экзамен.

Худший ответ: Лучше по мануалу на сайте.
www.php.net/manual/en/
PHP Study guide действительно устарел.
Дампов старых тестов я лично нигде не встречал, к тому же ответы на многие вопросы поменялись с переходом PHP с 4 до 5 и с 5 до 5.3, поэтому я бы не стал сильно надеяться на них.
Вопрос: Как безопасно передать переменную Ajax-скрипту?

Лучший ответ: Можно передавать ключ и записывать его в бд а потом проверять, как вариант.
Токен, почти тоже самое, но это сэкономит ресурсы и время... просто в берешь 1ну переменную и в нее заталкиваешь: id что-то еще и сам токен. Ну и после просто проверить или расшифровать, можно улучшить, добавить 1ну переменную что бы она писалась в бд а после сверялись. Честно говоря вариантов куча, но легче взломать чем защитить.

Худший ответ: Можно держать токен пользователя в БД и в Сессии или куках, и при каждом запросе проверять его валидность.