Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: PHP — Вывести ошибки в нужное место шаблона?

Лучший ответ:
Для отслеживания ошибок PHP:
// Устанавливаем обработчик ошибок (в рабочей версии закомментить)
set_error_handler('writeerror');

function writeerror($errno, $errstr, $errfile, $errline) {
// Вы водим ошибку. writelog - пользовательская функция. Используйте свою
writelog('php_error', date("y.m.d H:m:s")."\t".$errno."\t".$errstr."\t".$errfile."\t".$errline);
// Возвращаем true чтобы продолжить работу
return true;
}

Для отслеживания ошибок MySQL:
function sql_query($query) {
// Подключаем базу
dbconnect();
$return = mysql_query($query);
$error = mysql_error();
if ($error=='') {
return $return;
}
else {
writelog('sql_error', date("y.m.d H:m:s")."\t".$error);
return false;
};
}
Думаю принцип понятен.

Худший ответ:
Все очень просто. Инициализируете переменную, в которую Вы будете складывать ошибки. Затем, ставите некую фнукцию как обработчик ошибок. После делаете так, чтобы функция складывала ошибку в переменную. Готово.

$errors = '';

set_error_handler('errorHandler'); // обязательно почитайте про это функцию на php.net

function errorHandler($errno, $errstr, $errfile, $errline) {
    global $errors;
    $errors .= 'An error occured. ' . $errstr . ' at ' . $errfile . ':' . $errline . '<br />'
}
Вопрос: Какую библиотеку для обмена сообщениями между программами в Linux для С++ лучше использовать?

Лучший ответ:
Сокеты. Используются уже очень давно.

Худший ответ:
я за сокеты. Както классично получается :)
Вопрос: Проблемы с ноутбуком под Ubuntu Linux 11.10

Лучший ответ:
dpkg-reconfigure xserver-xorg от root-а

Худший ответ:
можно попробовать скачать драйвер с сайта нвидии и напрямую его установить. иногда помогает. правда перед этим апт-гет ремув пурге нивидиа*

так же можно прописать на время в хорг.конф вместо nvidia, vesa
Вопрос: В какой области развиваться дальше?

Лучший ответ:
Советую обратить внимание на Ruby on Rails.
Из плюсов по сравнению с .NET: Удовольствие от программирования Отзывчивое и активное комьюнити Когда вы работаете с проектом на RoR скорей всего ваш продукт будут любить те люди, для которых вы пишите. Когда пишите энтерпрайз на .NET скорей всего ваш код будут ненавидеть офисные клерки. Множество удалённых вакансий
Из минусов: Нет сертификации по технологиям, отсюда разброс зарплат, т.к. оценка вашего уровня подготовки субъективна Меньшее количество вакансий
Подробнее о минусах. 
Насчёт сертификатов и стандартов, есть просто хорошие курсы по рельсам, выпускники которых котируются на рынке. Но вообще сертификация это не rails way...
Если рассматривать вакансии именно удалённые, то количество не так уж и отличается.
Ознакомиться:
habrahabr.ru/post/128006
habrahabr.ru/post/187770
rusrails.ru
Входной уровень в технологию выше чем PHP, но ниже чем .NET
Но не стоит обманываться кажущейся простотой, рельсы держатся на огромном количестве соглашений, понимание которых ведёт к прокачке. И, конечно, синтаксис Ruby требует привычки.
Поправьте, если с чем-то не согласны =)

Худший ответ:
BigData, DistributedComputing. И не языки, а протоколы 
AMPQ, STOMP, MQTT - для сообщения 
PAXOS, RAFT - для согласования 
ApacheThrift, GoogleProtocolBuffers - для взаимодействия
ну и старый добрый OSI стек - для транспорта. Может быть так?
Вопрос: Один и тот же MySQL запрос работает через PhpMyAdmin но не работает через скрипт?

Лучший ответ:
Разбей запросы по; и выполняй их по отдельности. Мультизапросы могут не выполнятся в зависимости от настроек на отдельно взятом сервере.

Худший ответ:
Как отображается запрос в профайле xDebug?
Вопрос: Как лучше закрыть индексацию сайта wordpress на время?

Лучший ответ:
В самом wordpress  в админке есть возможность попросить поисковые системы не индексировать сайт. Настройки -> Чтение

Худший ответ:
habrahabr.ru/company/google/blog/113024 - отдавайте поисковым ботам 503 по User agent в соответствии с рекомендациями гугла того же. 
Списки UA можно погуглить - devaka.ru/articles/list-of-search-bots www.myrobotstxt.ru/page/spisok-osnovnyh-paukov www.tengy.ru/bot.html (у devaka относительно актуальный список на первый взгляд).
Вопрос: На мой хостинг проник вредоностный шелл, который перезаписывает htaccess — как уберечься в будущем?

Лучший ответ:
Стереть все под корень и перезалить.

Худший ответ:
Выручил скрипт Айболита 
проблема была в редиректах из .htaccess
Вопрос: Выбор основы «Проводного» умного дома?

Лучший ответ:
RS-485. Идеален для длинных линий связи в условиях сильных помех. Собственно почти вся аппаратура на военных судах и авиации общается по этому интерфейсу.
И да, RS-485 - это физический интерфейс. Поверх него придётся написать уже свой протокол общения.
Обычно в линии есть один мастер и куча слейвов. Мастер шлёт пакет с адресом слейва и данными, обозначающими, чего мастер хочет от этого слейва. Вызываемый слейв после получения пакета мастера должен ответить мастеру своим пакетом данных. В принципе, скорости вам хватит, особенно если не раздувать передаваемые данные и пользоваться кодовыми таблицами вместо передачи строковых данных.

Худший ответ:
По соотношению цена/возможности RS-485 + Modbus вполне годный вариант. Альтернатива (исключая спецпротоколы вроде KNX или SmartBus) CAN, но стоимость устройств дороже и отладка более сложная.
Большие скорости в принципе не нужны, так как данные будут в основном размером с байт-два. В бинарном виде это займет с адресами и контрольной суммой порядка 5-10 байт. То есть примерный объем с запасом 20 (10 - запрос, 10-ответ) байт на устройство.
В пользу modbus говорит еще огромный выбор уже готовых устройств. Если сейчас может быть интересно паять, собирать что-то, то через год-два может что-то измениться и возможность купить что-то может оказаться очень кстати.
Я бы не возлагал большие надежды на ардурину, во всяком случае как головное устройство. Лучше взять либо ПЛК, либо микро-ПК (например, Raspberry) с интерфейсом RS-485. Кроме того стоит подумать как строить сеть. На мой взгляд правильнее иметь умные оконечные устройства со связью с master'ом. Это поможет в аварийных ситуациях, например свет будет управляться  выключателем на стене через устройство, пока master недоступен.
Конечно кратко это все не опишешь, есть и некоторые подводные камни. Например крайне желательно подумать о гальванической развязке и правильном питании. Но вообще и по RS-485 и по Modbus много информации в сети и если задаться целью можно довольно таки неплохо разобраться.
Из альтернатив я бы смотрел на CAN, KNX или SmartBus. Но для CAN я что-то вообще не вижу устройств, а для спец решений совсем другие цены.
Вопрос: Как увеличить скорости работы продуктов JetBrains?

Лучший ответ:
Обычно такие проблемы возникают, когда машине выделено мало памяти, которая естественным образом сжирается через некоторое время. Для того, чтобы проверить, так ли это, сделайте:Перейдите во вкладку Settings->AppearanceОтметьте галочкой пункт Show Memory IndicatorВ правом нижнем углу должен появиться такой значок: Проверьте его значение, когда начнутся тормоза и кликните на него, чтобы запустить сборщик мусора
Если тормоза после этого исчезли, то делаем следущее:Находим файл настроек JVM в директории с исполняемым файлом вида <имя_продукта><разрядность>.vmoptionsДобавляем (изменяем) следующие пункты: 
-Xms128m-Xmx2048m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
Xms - минимальный раздел используемой RAM для кучи
Xmx - максимальный раздел используемой RAM для кучи
Остальные параметры используются для различных оптимизаций и, чтобы не перевирать, отправляю к первоисточникам.
https://blog.codecentric.de/en/2012/07/useful-jvm-...
habrahabr.ru/post/160049
P.S.
И да, использвание SSD в больших проектах - единественное решение для быстрой индексации.

Худший ответ:
2 варианта:
Или запускать на железе с ссд и нормальный количеством оперативы
Или переписать брейнсов на что-нибудь более быстрое чем жаба)
Вопрос: Вставлять картинки или делать через CSS?

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

Худший ответ:
Каждая картинка - это отдельный запрос к серверу. Все это замедляет загрузку страницы (не говоря уже о том, что растровые картинки сами весят больше). Конечно png-спрайты частично решает эту проблему, но времени на их создание тоже уходит немало. Еще один минус использования картинок для таких задач - они размыленно смотрятся на retina и QHD мониторах, число которых растет изо дня в день. 
Для таких вещей, которые вы описали, используйте иконочные шрифты или svg спрайты.
Самое популярное решение сейчас - это Font Awesome - там уже есть огромное количество иконок, которые подойдут для решения ваших задач. Другие аналогичные сайты - IcoMoon и Fontastic.
Для остальных случаев (редкие иконки) можно сделать иконочный шрифт самостоятельно (последние 2 сервиса кстати с этим отлично справляются). Надо просто загрузить туда свои svg. На первый взгляд это может показаться сложным, но как только реализуете этот метод хоть в одном проекте - о вырезании картинок забудете навсегда. Плюс такими элементами можно управлять через css - например, менять цвет при наведении.
У второго способа тоже есть минусы - для поддержки старых браузеров придется делать большое количество фолбэков. Но если "смотреть в завтрашний день", то конечно лучше использовать его.
Вопрос: Какую выбрать CMS для игрового клана?

Лучший ответ:
Серьезно???

Худший ответ:
Не видел ни в одной CMS - форума. 
Все, что вы описали делается ручками и накаткой дополнительных модулей наDrupal, Joomla, MODx- Простота установки и настройки приветствуется
Вам с такими требованиями явно на UCOZ надо смотреть.
Вопрос: Gettext или ini?

Лучший ответ:
В yii конфиги в нативном массиве как писали выше, так проще будет.

Худший ответ:
Сделал выбор в сторону ini после этой статьи Самые быстрые настройки для PHP-скриптов и также посмотри вот тут
Вопрос: Форк в Github и регистр символов в Windows

Лучший ответ:
Стоп, верхнее не делайте… Пропробуй так…

git mv file file1
git mv file1 File
(commit)

Возможно этого хватит.

Худший ответ:
В винде регистр при названии файлов не учитывается (нельзя создать папку или файл с одним и тем же названием но в разном регистре).

Попробуйте так:
1. Переименуйте, добавив в начале "_" (любой символ). Commit
2. Переименуйте обратно в нужном регистре. Commit
3. С помощью git rebase -i HEAD~2 объединяете оба коммита в один (в втором по списку меняете pick на squash)
4. В появившемся окне укажите сообщение для коммита

В итоге получаете нужный вам коммит.
Вопрос: Как отобразить контент через определённый div?

Лучший ответ:
Если я правильно понял задачу, должно сработать:
Родительский div c overflow:hidden и position:relative, дочерний -- position:absolute, перемещайте его внутри родительского блока с margin или просто top/left

Худший ответ:
Если правильно понял суть вопроса, то вот как один из способов решения, разделите по блокам и будем вам счастье!
Вопрос: Как подключить Markdown к моделям?

Лучший ответ:
Оверрайдишь save() в модели или в ModelForm через, которую сохраняешь
из текста в html превращается все вот такmarkdown.markdown(text)
Но лучше в темплейте рендерить{{text|markdown:"safe,footnotes,tables"}}
stackoverflow.com/questions/16689334/troubleshooti...

Худший ответ:
А вот эту батарейку не пробовали ?
Вопрос: Нужно ли регистрировать ИП?

Лучший ответ:
Я не рекомендую вам открывать ИП. У меня было два, и больше с этой юридической формой связываться не намерен. Вам придется платить каждый месяц в пенсионный фонд, даже если у вас не будет прибыли. Чего не нужно делать в ООО. У вас будет малое количество транзакций, поэтому можно найти человека, который будет обслуживать ваше ООО за небольшие деньги, меньше, чем вы заплатите пенсионному в ИП.  Можно самому освоить  отчетность.
Правительство собиралось в 2015-16-ом обязать ИП платить по 54 тыс рублей в год. Сейчас кризис и от идеи пока отказали, но это не значит очень "умным" депутатам снова не прийдет в голову что-то подобное. Они ведь думают, что если ты коммерсант,  то у тебя под кроватью кубышки с деньгами, которые ты прячешь от государства.
Кроме того, по ИП вы будете отвечать своей собственностью. И если у вас будут долги, вас не выпустят за границу, в отличие от собственников ООО с долгами.
Update 12.02.15: обслуживание ООО сейчас подорожало и на аутсорсе стоит где-то 60к в год. Идеальный вариант - самому освоить отчетность.  Есть разные сервисы типа "Эльба", "Мое дело" и т.п.. Курсы на торрентах есть, также есть разные обучающие видео на ютубах.
Update 03.05.15: есть замечательные сервисы, типа "кнопки", которые решают вопросы за существенно меньшие деньги.

Худший ответ:
Короче, даже если вы работаете в питере и живете тут. Не обязательно регать фирму.
Сейчас грубо говоря есть фирмы, которые работают на аутсорсе.
То есть дают вам, печать, все документы, подписи.
Далее ставите 1С к примеру, и сами делаете счета и документы.
Ищите людей, ген. директоров с кем можно наладить контакт.
Есть в интернете сервисы.
А вот с оплатой в евро конечно гемор будет, дело в том что у нас компании в России не могут принимать валюту. Это незаконно.
Поэтому придётся искать обменный сервис.
Если со мной свяжитесь, я уточню. У меня есть пару гендиров которые работают с Финляндией.
По надобности могу узнать про валютные операции.
Все почему то помешаны на открытиях фирмы. Её нужно открывать с самый последний момент - когда уже выхода другого нет (например безналом вам хотят перечислить 500 000 рублей)
Вопрос: Как лучше реализовать задание порядка выполнения методов?

Лучший ответ:
В Module* добавить публичный метод возвращающий правила. В process для каждого загруженного модуля вызывать такой метод, после чего формировать последовательность запуска. По сути, хотя Boss и не знает эти правила, в ходе вызова process он их по сути узнает. В итоге Boss таки знает последовательность, просто опосредованно.

Худший ответ:
Думаю, что нужно задавать приоритет методов внутри класса и приоритет классов внутри наследника, дальше перед циклическим выполнением - сортировать по этому приоритету.
Вопрос: Маршрут по умолчанию Cisco на два интерфейса?

Лучший ответ:
Чем чревато добавлять маршруты по умолчанию на разные провайдеры с разной метрикой? Тем, что активен будет только один.Не пойму в чем может быть косяк? Уточните вопрос. Что пробовали, что наблюдается и что необходимо получить?Ну если один провайдер упал чтобы интернет работал.допустим так
ip route 0.0.0.0 0.0.0.0 10.0.0.1
ip route 0.0.0.0 0.0.0.0 10.0.0.2 50  В данном случае, если правильно понимаю, устройства с адресами 10.0.0.1 и 10.0.0.2 доступны через один и тот же интерфейс. Скорее всего, топология такова: ваше устройство устройство подключено к коммутатору, к нему же подключены маршрутизаторы провайдеров .Это значит, если 10.0.0.1 перестанет работать (выключится), интерфейс не изменит своего состояния (останется в состоянии up/up), в отличие от схемы с выделенным интерфейсом на маршрутизатор. Скорее всего, маршрут до 10.0.0.1 останется в таблице маршрутизации и "переключения" маршрутов и трафика не произойдет. Чтобы скорректировать поведение, используйте ip sla tracking.

Худший ответ:
Смотря какого эффекта вы желаете добиться.
Ознакомьтесь с этой статьёй, даже больше заметка habrahabr.ru/post/80717
Вопрос: Какие есть каталоги сайтов для вдохновения дизайнеру?

Лучший ответ:
bestcss.in
Каждый день, новый сайт с отличным дизайном

Худший ответ:
во, всем спасибо
Вопрос: Можно-ли отменить chown?

Лучший ответ:
Так и хочется написать, мол «rm -rf /» все вернут на место. кхм, простите :)
на счет БД: у вас же скорее всего в /var/lib/mysql лежат базы, да? сделайте так, что бы mysql был ее владельцем.

Худший ответ:
mysqld из консоли запустите — mysql скажет, чоемунадо для щастья.
Вопрос: Есть ли толковые мануалы по расчету маски подсети и другие задачи из CCNA?

Лучший ответ:
Ну так в официальном руководстве CCNA все описано. Подробнее некуда. И примеры для расчета есть.

Худший ответ:
Советую начать с обоих частей ICND я проходил уже второую версию, мжет уже и 3,4 вышли, на торрентах скорее всего будет куча документации. эмуляторы и еще всякого для тренировки
Вопрос: Как бы Вы реализовали бы модули новостей, доски объявлений, гостевой книги, блога?

Лучший ответ:
Всё кроме блога нужно выкинуть. Особенно гостевую книгу. Такими штуками больше никто и никогда не пользуется. Доски объявлений? На улице 2015, а не 1999. Новости, как показало время тоже никому не нужный раздел.
Для всех этих целей достаточно одного блога.

Худший ответ:
Posts - новости, блог, доска объявлений.
Comments - гостевая книга, комменты к новостям/блогу/доске объявлений, если надо.
У Posts есть некий type (Post::TYPE_NEWS = 1, Post::TYPE_BLOG = 2, Post::TYPE_BOARD = 3, Post::TYPE_GUESTBOOK = 4).
Связи -  Posts has many Comments. Comment belongs to Post.
Разумеется, у Вас будет одна запись с type=4.
Вопрос: Каким образом можно попрактиковаться в администрировании HP HP-UX и IBM AIX?

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

Худший ответ:
Практика в рабочей среде или покупай б/у IBM Power, заранее смотри, чтобы поддержка была aix latest версий. По-поводу того, что aix умирает - чепуха. Смотри вакансии на indeed по теме aix.
Вопрос: Как пробрасывать только одно окно из терминала?

Лучший ответ:
публикация приложений (Remote APP)
Windows server 2008тыц

Худший ответ:
Для 2008 и выше - remote app. Для 2003 в свойствах пользователя можно указывать программу для запуска - будет запущена терминальная сессия и единственная программа в нем. Не совсем тоже самое, но как вариант.
Вопрос: Где большие чаты рускоговорящих web-разработчиков?

Лучший ответ:
В чате хекслета slack-ru.hexlet.io около двух тысяч разработчиков

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

Лучший ответ:
Гм, как это не печально признавать, но море различной информации встречал в большинстве своем на английском языке. Это как обучение для прохождения соответствующей сертификации (CHFI 312-49: Computer Hacking Forensic Investigator), та и множество другой литературы, с разбором действий, приемов и много чего прочего использующегося в компьютерной криминалистике. На русском языке подобного весьма мало.

Худший ответ:
Литературу посоветовать увы не могу потому что не встречал. Но могу предложить почитать WriteUp-ы с турниров ctf. SiBears и MIT например
Вопрос: Взаимозаменяем ли switch с if в JavaScript?

Лучший ответ:
Ситуация, в которой есть смысл сравнивать эти инструкции — проверка на соответствие множеству взаимоисключающих условий.if else
Обрабатываются все условия методично, друг за другом.switch
Каждый case — точка входа в блок инструкций.
Если сравнивать быстродействие, то webkit покажет почти одинаковые результаты, в Gecko производительность выше у switch, но не кардинально (на 20-30%), что не принципиально.
А вот логика у этих инструкций разная. Это заметно, если для некоторых значений требуется выполнить одни и те же инструкции. В этом случае написанные подряд case могут быть удобней, чем составная проверка в if. Кроме того, после выполнения входа выполнение инструкций продолжается либо до инструкции break, либо до окончания инструкции switch. И тут у switch появляются дополнительные возможности.
Следует также учесть, что в инструкции switch выполняется проверка с учётом типа (===), что отличает её от if, в которой проверяться может хоть приведённое значение (==), хоть чёрт в ступе. Значения case должны представлять собой примитивы (выражения, в результате выполнения которых подставляются примитивы).Пример ifif (x === 'a') {
	//Только для 'a'
} else if (x === 'b' || x === 'c' || x === 'd') {
	//Только для 'b', 'c', 'd'
} else {
	//Для остальных
}Пример switchswitch (x) {
	case 'a':
		//Только для 'a'
		break;
	case 'b':
	case 'c':
	case 'd':
		//Только для 'b', 'c', 'd'
		break;
	default:
		//Для остальных
}
А вот такое возможно только с использованием switchswitch (x) {
	case 'a':
		//Только для 'a'
	case 'b':
		//Только для 'a', 'b'
	case 'c':
	case 'd':
		//Только для 'a', 'b', 'c', 'd'
		break;
	default:
		//Для остальных
}

Худший ответ:
Не всегда, для сложных условий switch не подходит
Вопрос: Как добиться синхронного выполнения?

Лучший ответ:
Пробрасывайте колбэк в getBalance, где подставляете его на место колбэка завершения mysql-запроса/*Объявляем*/
getBalance(resultCallback) {
    connection.query('%QUERY%', resultCallback);
}

/*Используем*/
getBalance(function(err, rows, fields){
// что-то делаем с полученным результатом
});
вроде так

Худший ответ:
Используйте callback'и.
Если кратко, то в функцию getBalance вы передаёте функцию, которая должна выполнится, когда этот самый баланс получен.
Вопрос: Стоит ли брать заказ по wordpress если знаешь только front-end и php?

Лучший ответ:
Какое нафиг "Ничего не бойся - бери"?!
А не парит, что можете человека подвести? Или интересы заказчика вам до голубой звезды? Не самое хорошее начало.
Готов поспорить, что с таким уровнем знаний большинство задач будет решено костыльно.
Сначала для себя повыполняйте какие-то работы, аналогичные тем, что народ заказывает.

Худший ответ:
Если действительно знаешь front end и php, то WP освоишь быстро, посмотри пару видеоуроков что бы понять принцип и сделаешь заказ.
Вопрос: Какой язык выбрать под Backend высоконагруженного rest-сервиса?

Лучший ответ:
Ну выбора у вас не много.
Го - на порядки проще, особенно при работе с вашими задачами (http/json/db)
C++  - в разы быстре Го, но и в разы тяжелее вам будет работать с ним
Пока у вас не миллионы онлайна и живёте вы на PHP, спокойно переходите на Go, его хватит надолго.

Худший ответ:
пизон
Вопрос: Сервис отслеживания посылок — кто каким пользуется?

Лучший ответ:
Использую TrackChecker для Android.
Это порт программы TrackChecker для Windows. (О ней был пост на Хабре.)

Худший ответ:
Это Вы написали два раза чтоб уж наверняка дошло до всех? =)
Вопрос: Можете порекомендовать онлайн-курсы по сетям и Unix/Linux?

Лучший ответ:
Это что касается русского языка: 
По Linux лучшее что я видел это курсыСпециалист - Linux и FreeBSD 1,2,3 уровень
GNU/Linux. Факультет вычислительной математики и кибернетики МГУ
По сетям:Специалист - Межсетевое взаимодействие в сетях на базе TCP\IP
Курс ICND Cisco. 
По разумным причинам ссылок нет, но думаю найдете.
Эти курсы хороши, но по большому счету я там вообще ничего нового не узнал, лишь мелкие детали, которые дополнили багаж знаний полученный из книг. Читайте. Есть замечательные книги в которых очень обширно и подробно рассматриваются различные темы как по сетям так и по GNU\Linux, FreeBSD и тд. 
Не хочу ставить под сомнение опыт и знание преподавателей этих видео курсов, но при послушивании на ряду с различными дополнениями из личного опыта и интересными историческими справками были и ошибки, недоговорки и умалчивание очень важных и крайне актуальных моментов. Книги этого лишены по большей части. Советую если еще не прочитали мировые труды и, так сказать, классику жанра по сетям и Unix-подобным ОС - одновременно с просмотром этих видео курсов читать по темам книги.

Худший ответ:
www.intuit.ru/studies/courses/23/23/info
www.intuit.ru/studies/courses/22/22/info
не то чтобы рекомендую, но не помешают.