Как правильно задавать вопросы
Содержание
Переводы
Отказ от обязательств
Введение
Прежде, чем спрашивать...
Когда спрашиваете...
Правильно выбирайте форум
Web- и IRC-форумы для начинающих часто позволяют получить ответ как можно быстрее
В качестве второго шага, используйте списки рассылки проектов
Задавайте осмысленные, конкретные темы сообщений
Упростите посылку ответа
Пишите понятным языком, соблюдая правила грамматики и лексики
Посылайте вопросы во всем понятных форматах
Точно и детально опишите проблему
Объем еще не значит точность
Не утверждайте, что нашли ошибку
Публичное самоунижение не заменяет выполнение домашних заданий
Описывайте симптомы проблемы, а не свои предположения
Описывайте симптомы проблемы в хронологическом порядке
Описывайте цель, а не отдельный шаг
Не просите отвечать на личный адрес электронной почты
Задавайте ясные и четкие вопросы
Не задавайте вопросы из домашних заданий
Избегайте бессмысленных просьб
Не помечайте свой вопрос как "Срочный", даже если для вас он именно такой
Вежливость никогда не повредит, и иногда помогает
Пошлите краткое описание решения
Как интерпретировать ответы
RTFM и STFW: как понять, что вы серьезно облажались
Если вы не поняли...
Реакция на грубость
Не реагируйте как неудачник
Вопросы, которые задавать не надо
Хорошие и плохие вопросы
Если ответ не получен
Как давать хорошие ответы
Дополнительные источники информации
Благодарности
Переводы
Имеются переводы этого документа на чешский, датский, эстонский, французский, немецкий, иврит, венгерский, польский, русский и испанский языки. Если вы хотите копировать, поддерживать зеркало, перевести или процитировать этот документ, прочитайте, пожалуйста, мои правила копирования.
Отказ от обязательств
На сайтах многих проектов в разделах о том, как обращаться за помощью, даны ссылки на этот документ. Это хорошо, именно для этого он и предназначен, но если вы — web-мастер, собирающийся добавить такую ссылку на странице своего проекта, пожалуйста, рядом со ссылкой на видном месте укажите, что мы не являемся службой поддержки для вашего проекта!
Мы на собственном горьком опыте убедились, что, при отсутствии такого предупреждения, нас постоянно будут донимать идиоты, считающие, что публикация этого документа обязует нас решать все технические проблемы в мире.
Если вы читаете этот документ потому, что нуждаетесь в помощи, и вам в итоге кажется, что вы ее можете получить непосредственно от авторов, то вы - один из этих самых идиотов. Не задавайте вопросы нам. Мы будем их просто игнорировать. Наша цель - показать вам, как получить помощь у тех, кто разбирается в программном или аппаратном обеспечении, с которым вы работаете, но в 99% случаев, этими разбирающимися будем не мы. Если не знаете наверняка, что один из авторов является экспертом в том, с чем вы разбираетесь, - оставьте нас в покое, и от этого всем станет лучше.
Введение
В мире хакеров, стиль ответов, которые вы получаете на задаваемые технические вопросы, зависит от способа задания вопросов не меньше, чем от их сложности. Это руководство научит задавать вопросы так, чтобы увеличить вероятность получения удовлетворительного ответа.
Сейчас, когда программное обеспечение с открытыми исходными текстами стало широко распространено, вы часто можете получить ответы от других, более опытных, пользователей, а не от хакеров. Это - Хорошо; пользователи обычно немного терпимее относятся к ошибкам, которые часто делают новички. Но, если обращаться к опытным пользователям как к хакерам, в соответствии с представленными здесь рекомендациями, то это будет самым эффективным способом получить полезные ответы и от них.
Прежде всего, надо понять, что хакерам на самом деле нравятся сложные проблемы и хорошие, способные расшевелить мозги, вопросы об этих проблемах. Если бы нам это не нравилось, мы не были бы хакерами. Если задать нам интересный вопрос, требующий продолжительных размышлений, мы будем за него благодарны; хорошие вопросы - это стимул и подарок. Хорошие вопросы помогают лучше понять предмет и часто вскрывают проблемы, которых ранее не замечали или о которых не задумывались. Из уст хакера: "Хороший вопрос!" - это большой и искренний комплимент.
Несмотря на это, считается, что хакеры относятся к простым вопросам скорее враждебно или высокомерно. Иногда кажется, что мы достаточно грубы к новичкам и игнорируем их. Но, на самом деле, это не так.
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей мы называем "неудачниками" ("losers") (по историческим причинам это слово иногда пишется как "lusers" - пользователи-неудачники).
Мы понимаем, что многие люди просто хотят использовать создаваемое нами программное обеспечение, и совершенно не собираются изучать технические детали. Для большинства компьютер - это просто инструмент, средство достижения цели; у них есть и более интересные занятия и другие проблемы в жизни. Мы признаем это и не ожидаем, что каждого будут интересовать технические нюансы, столь привлекательные для нас. Тем не менее, наш стиль ответов на вопросы подходит для людей, действительно интересующихся этим, и желающих быть активными участниками процесса решения проблем. Это не изменится. Да и не должно меняться; в противном случае, мы не сможем эффективно делать то, в чем мы - лучшие.
Мы (в основном) - добровольцы. Мы посвящаем время своей нелегкой жизни ответам на вопросы, и временами мы не справляемся со шквалом вопросов. Поэтому приходится безжалостно "фильтровать базар". В частности, отбрасывать вопросы потенциальных неудачников, чтобы потратить отведенное на ответы время более эффективно, посвящая его победителям.
Если эта позиция кажется вам смешной, высокомерной или заносчивой, вы ошибаетесь. Мы не просим вас на нас молиться — фактически, большинство из нас хотели бы общаться с вами на равных и принять вас в свою культуру, если вы приложите необходимые для этого усилия. Но для нас просто неэффективно пытаться помочь людям, которые не хотят помочь себе сами. Быть грубым - нормально, а вот прикидываться идиотом - нет.
Итак, хотя вовсе не обязательно быть технически компетентным, чтобы удостоиться нашего внимания, надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения. Если вы не можете смириться с подобного рода дискриминацией, имеет смысл заплатить кому-то за коммерческую поддержку, а не просить хакеров помочь даром лично вам.
Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
(Дополнения к этому руководству приветствуются. Предложения можно направлять по адресу esr@thyrsus.com. Учтите, однако, что этот документ не создавался как общее руководство по сетевому этикету, и я обычно игнорирую предложения, не связанные непосредственно с получением полезных ответов в техническом форуме.)
Прежде, чем спрашивать...
Прежде, чем задавать технический вопрос по электронной почте или в дискуссионную группу, в чате или на форуме, сделайте следующее:
Процедура 1.
1.
Попытайтесь найти ответ с помошью поиска в Web.
2.
Попытайтесь найти ответ в руководстве.
3.
Попытайтесь найти ответ в списке часто задаваемых вопросов (ЧаВО).
4.
Попытайтесь найти ответ путем проверок или экспериментов.
5.
Спросите опытного товарища.
6.
Если вы - программист, попытайтесь найти ответ, анализируя исходный код.
Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали; это поможет понять, что вы не какой-нибудь лентяй, транжирящий чужое время. Еще лучше, покажите, что вы узнали в результате своих поисков. Нам нравится отвечать людям, продемонстрировавшим свою способность воспринимать ответы.
Используйте приемы типа поиска в Google по тексту полученного сообщения об ошибке (поищите также в дискуссионных группах - Google groups, а не только на Web-страницах). Это может привести либо неспосредственно к документации, посвященной тому, как эту ошибку устранить, либо к дискуссии в списке рассылки, в которой можно будет найти ответ. Даже если ответ и не найдется, фраза: "Я поискал в Google по следующему запросу, но ничего полезного не нашел" пригодится при обращении за помощью по электронной почте или в дискуссионную группу.
Подготовьте вопрос. Продумайте его. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите. Чем больше вы сделаете, чтобы продемонстрировать свои размышления и усилия по решению проблемы до того, как просить помощи, тем вероятнее, что вы эту помощь получите.
Не задавайте неправильных вопросов. Если вопрос строится на ошибочных предположениях, любой хакер (в оригинале - J. Random Hacker, прим. переводчика), скорее всего, даст бесполезный буквальный ответ, подумав при этом "Глупый вопрос...", и надеясь, что получение того, о чем вы просили, вместо того, что действительно нужно, чему-то вас научит.
Не думайте, что вам должны ответить. Вам никто ничего не должен; вы же, в конечном счете, не платили за эти услуги. Вы получите ответ, если заслужите его, задавая существенный, интересный и наводящий на размышления вопрос — вопрос, неявно дающий сообществу новый опыт, а не просто пассивно требующий от других поделиться знаниями.
С другой стороны, неплохо сразу ясно дать понять, что вы можете и хотите помочь в процессе выработки решения. На вопросы типа "Может ли кто-то подсказать?", "Что не учтено в моем примере?" и "А нет ли сайта, который стоит на эту тему посмотреть?" более вероятно будет получен ответ, чем на требование прислать точную последовательность действий для решения проблемы, поскольку вы явно показали, что решите проблему сами, если кто-то укажет вам правильное направление действий.
Когда спрашиваете...
Правильно выбирайте форум
Тщательно продумайте, где именно задавать вопрос. Вас с большой вероятностью проигнорируют или спишут как неудачника, если вы:
*
пошлете вопрос в форум, не соответствующий по тематике (off topic)
*
пошлете самый элементарный вопрос в форум, где обсуждаются сложные технические вопросы, или наоборот
*
пошлете вопрос одновременно (cross-post) во множество различных дискуссионных групп
*
пошлете личное сообщение по электронной почте незнакомому человеку, лично не отвечающему за решение ваших проблем
Хакеры игнорируют вопросы, направленные не по адресу, чтобы не загружать свои каналы связи не относящейся к делу информацией. Не стоит попадать в этот разряд вопросов.
Поэтому сначала надо найти соответствующий форум. В этом вам снова поможет поисковая система Google и другие средства поиска в Web. Используйте их для поиска страницы проекта, наиболее тесно связанного с оборудованием или программным обеспечением, с которым возникли трудности. Обычно на этой странице будут ссылки на список часто задаваемых вопросов (ЧаВО, FAQ - Frequently Asked Questions), списки рассылки проекта и их архивы. Именно там и надо просить помощи, если ваши собственные усилия (включая прочтение этих, обнаруженных вами, ЧаВО) не увенчались успехом.
Посылка же сообщения человеку или в форум, с которым вы не знакомы, - предприятие, как минимум рискованное. Например, не думайте, что автор информативной web-странички хочет стать для вашим бесплатным консультантом. Не делайте оптимистических предположений о том, что вашему вопросу будут рады - если не уверены, пошлите его по другому адресу или откажитесь от его посылки вообще.
При выборе Web-форума, дискуссионной группы или списка рассылки, не принимайте решение только на основе имени; прочитайте список часто задаваемых вопросов (FAQ) или правила, чтобы убедиться, что вопрос соответствует тематике. Почитайте сообщения некоторое время, прежде чем посылать вопросы, чтобы почувствовать, как и что здесь делается. На самом деле, перед посылкой вопроса не помешает поискать по ключевым словам, связанным с вашей проблемой, в архивах дискуссионной группы или списка рассылки. В результате можно найти ответ, а если нет, такой поиск поможет лучше сформулировать вопрос.
Правильно определите тему! Одна из классических ошибок - задавать вопрос о программном интерфейсе Unix или Windows в форуме, посвященном языку, библиотеке или инструментальному средству, работающему на обеих платформах. Если вы не понимаете, почему это - грубая ошибка, лучше вообще не задавайте вопросов, пока не поймете.
В общем случае, вероятность получить ответы на вопросы в правильно выбранном общедоступном форуме выше, чем в приватном. Причин для этого несколько. Одна из них - количество потенциальных отвечающих. Другая - размер аудитории, которая узнает ответ; хакеры с большим удовольствием отвечают на вопросы, которые могут интересовать многих, чем на вопросы, полезные лишь единицам.
Понятно, что опытные хакеры и создатели популярных программ и так уже получают намного больше не относящихся к делу вопросов, чем хотели бы. Увеличивая этот поток, вы в некоторых случаях можете стать последней каплей - изредка участники популярных проектов прекращают их поддержку, потому что не выносят больше сопутствующих ей проблем в виде потока бесполезных сообщений по электронной почте на их личные адреса.
Web- и IRC-форумы для начинающих часто позволяют получить ответ как можно быстрее
Ваша местная группа пользователей или ваш дистрибутив Linux может поддерживать Web-форум или канал IRC, предназначенный для помощи начинающим. (В неанглоязычных странах форумы для начинающих, по-прежнему, скорее всего, организованы в виде списков рассылки.) Это - подходящие места для первоначального задания вопросов, особенно если предполагается, что вы столкнулись с относительно несложной или типичной проблемой. Открыто рекламируемый канал IRC - это явное приглашение задавать вопросы, и, зачастую, возможность получать ответы в реальном времени.
Фактически, если программа, с которой у вас возникли проблемы, взята из дистрибутива (что, на сегодня, типично), может оказаться лучше сначала спросить в форуме/списке рассылки по соответствующему дистрибутиву, прежде чем обращаться в форум/список рассылки программы. Хакеры, работающие над проектом, могут просто ответить: "Используйте нашу сборку".
Прежде чем задавать вопрос в любом Web-форуме, проверьте, нет ли на нем возможности поиска. И если она есть, поищите пару раз по ключевым словам обсуждение проблемы, подобной вашей; это может помочь. Если перед этим вы выполнили общий поиск в Web (что надо было сделать), все равно поищите на форуме; возможно, ваша поисковая система давно не индексировала повторно этот форум.
Наблюдается интересная тенденция выполнять поддержку пользователей проектов через Web-форум или канал IRC, оставляя электронную почту для общения между разработчиками. Поэтому, если нужна помощь по проекту, обратитесь сначала к этим его источникам информации.
В качестве второго шага, используйте списки рассылки проектов
Если у проекта есть список рассылки для разработчиков, шлите вопросы в этот список рассылки, а не отдельным разработчикам, даже если уверены, что знаете, кто именно лучше всего может ответить на ваш вопрос. Найдите адрес списка рассылки проекта в документации или на сайте проекта, и шлите вопрос по этому адресу. Есть несколько хороших причин поступать именно так:
*
Любой вопрос, достаточно хороший, чтобы с ним обратиться к одному разработчику, будет ценным и для всей группы. Наоборот, если кажется, что вопрос слишком примитивный для списка рассылки, это еще не повод морочить им голову отдельных разработчиков.
*
Если вопрос задается в списке рассылки, нагрузка распределяется между всеми разработчиками. Конкретный разработчик (особенно если он - руководитель проекта) может быть слишком занят, чтобы отвечать на ваши вопросы.
*
Большинство списков рассылки архивируется, а архивы - индексируются поисковыми системами. Кто-то сможет найти ваш вопрос и ответы в сети, и не задаст его снова в списке рассылки.
*
Если определенные вопросы задаются часто, разработчики могут использовать эту информацию для улучшения документации или самого программного продукта, чтобы они стали более понятными. Но если эти вопросы задаются лично, ни у кого нет общей картины, - о чем чаще всего спрашивают.
Если у проекта есть отдельные списки рассылки или Web-форумы для "пользователей" и для "разработчиков" (или "хакеров"), и вы не занимаетесь разбором (hacking) кода, задайте вопрос в списке/форуме для "пользователей". Не рассчитывайте на теплый прием в списке рассылки для разработчиков, где ваш вопрос, вероятно, отнесут к разряду "шума", мешающего обмену информацией о ходе разработки.
Однако, если вы уверены в нетривиальности своего вопроса и не получили ответа в списке рассылки/форуме для "пользователей" в течение нескольких дней, обратитесь к разработчикам. Имеет смысл перед этим последить за соответствующим списком рассылки или форумом несколько дней, чтобы изучить его традиции (на самом деле, это имеет смысл делать перед обращением в любой частный или полузакрытый список рассылки).
Если не удается найти адрес списка рассылки проекта, но известен адрес лица, ведущего проект, пошлите свой вопрос ведущему. Но и в этом случае не думайте, что списка рассылки нет. В своем сообщении укажите, что пытались, но не смогли найти соответствующий список рассылки. Упомяните также, что не против пересылки вашего сообщения другим адресатам. (Многие считают, что личная корреспонденция должна оставаться личной, даже если ничего секретного в ней нет. Разрешая переслать свое сообщение, вы даете людям выбор.)
Задавайте осмысленные, конкретные темы сообщений
При посылке сообщения в список рассылки или в дискуссионную группу, тема сообщения - прекрасная возможность привлечь внимание квалифицированных экспертов строкой длиной до 50 символов. Не тратьте их на лепет типа "Помогите мне, пожалуйста" (не говоря уже про темы "PLEASE HELP ME!!!!"; сообщения с такими темами выбрасываются рефлекторно). Не пытайтесь поразить нас глубиной своих страданий; лучше используйте отведенное место для максимально краткого описания проблемы.
Хорошее соглашение по оформлению тем сообщений, используемое многими службами технической поддержки, - применение шаблона "объект - отклонение". Часть "объект" задает, с чем именно возникла проблема, а часть "отклонение" описывает отклонение от ожидаемого поведения.
Глупо:
ПОМОГИТЕ! Видеокарта на моем ноутбуке работает неправильно!
Разумно:
Неправильная форма курсора мыши в XFree86 4.1, видео на чипсете Fooware MV1005
Еще лучше:
XFree86 4.1 курсор мыши на чипсете Fooware MV1005 - неправильная форма
Процесс написания темы по шаблону "объект-отклонение" поможет более детально осмыслить проблему. Что именно неправильно работает? Только курсор мыши или с другой графикой тоже есть проблемы? Проблема только в XFree86? Только в версии 4.1? Эта проблема возникает только на видеокартах с чипсетом Fooware? Только в модели MV1005? Хакер, получив сообщение с подобной темой, сможет, в общих чертах, понять, с чем именно у вас возникала проблема и что это за проблема.
Если вы задаете вопрос в ответ, не забудьте изменить строку темы так, чтобы по ней было понятно - задается вопрос. Строка темы вида "Re: test" или "Re: new bug" не привлечет достаточного внимания. Кроме того, сведите цитирование предыдущих сообщений к минимуму, достаточному, чтобы новые пользователи могли понять, о чем шла речь.
Не посылайте просто ответ на сообщение списка рассылки, если собираетесь обсуждать новую тему (начать нить обсуждения). Это сузит круг отвечающих. Некоторые программы чтения почты, например, mutt, позволяют пользователю сортировать сообщения по темам, а затем прятать сообщения по теме, сворачивая нить обсуждения. Те, кто этой возможностью пользуется, никогда вашего сообщения не увидят.
Поменять тему недостаточно. Mutt и, возможно, другие программы чтения электронной почты, учитывают не только строку темы, но и другую информацию в заголовках сообщений при привязке их к нити обсуждения. Создайте абсолютно новое сообщение.
В Web-форумах правила обсуждения немного отличаются, поскольку сообщения обычно более тесно связаны с конкретными нитями обсуждения и часто невидимы за пределами этих нитей. Изменение темы при задании вопроса в ответ не существенно (не все форумы даже позволяют указывать темы в ответах, а если их и можно задать, практически никто их не читает). Но, задавать встречный вопрос в ответ само по себе - сомнительная практика, поскольку вопрос этот увидят только те, кто следит за соответствующей нитью обсуждения. Поэтому, если вы не уверены, что хотите обратиться именно к тем, кто участвует в обсуждении темы, начните новую тему.
Упростите посылку ответа
Завершение вопроса фразой "Ответ, пожалуйста, направляйте по адресу... " делает получение ответа весьма маловероятным. Если у вас нет пары секунд на то, чтобы правильно задать заголовок Reply-To в своей почтовой программе, то у нас нет и пары секунд на то, чтобы подумать о вашей проблеме. Если ваша почтовая программа не позволяет это сделать - выкиньте ее. Если ваша операционная система не поддерживает почтовые программы, позволяющие это сделать, поищите операционную систему получше.
Просить отвечать по электронной почте в Web-форумах - крайне невежливо, если только вы не уверены, что информация может оказаться конфеденциальной (и кто-то, по неизвестной причине, захочет сообщить ее вам лично, а не всему форуму). Если вы хотите получить уведомление по почте о том, что кто-то ответил на тему в форуме, запросите это уведомление в интерфейсе Web-форума; эта возможность поддерживается практически везде в виде опций "watch this thread" ("следить за обсуждением"), "send email on answers" ("уведомлять по почте") и т.п.)
Пишите понятным языком, соблюдая правила грамматики и лексики
Экспериментальным путем установлено, что люди, пишущие невнимательно и небрежно, обычно так же невнимательны и небрежны в мыслях и в коде создаваемых программ (по крайней мере, достаточно часто, чтобы уверенно так утверждать). Отвечать на вопросы людей невнимательных и небрежно мыслящих - занятие неблагодарное; мы свое время лучше потратим на что-то другое.
Поэтому четкость и правильность формулировки вопроса имеет значение. Если вы не хотите морочить себе этим голову, мы не хотим морочить голову себе, уделяя внимание таким вопросам. Постарайтесь сформулировать вопрос правильным языком. Он не должен быть тяжеловесным и формальным — на самом деле, в хакерской культуре ценится неформальный, полный сленга и юмора язык, используемый правильно. Но мысли должны быть выражены четко; необходимо продемонстрировать хоть какие-то признаки вдумчивости и внимания.
Соблюдайте правила синтаксиса, пунктуации и использования прописных букв. Не путайте "its" с "it's", "loose" с "lose" или "discrete" с "discreet". Не ПИШИТЕ ВСЕ В ВЕРХНЕМ РЕГИСТРЕ, - это воспринимается как крик и считается грубостью. (Если все написано в нижнем регистре, - не многим лучше, поскольку так сложно читать. Алану Коксу это прощается, а вам - нет.)
В общем случае, если вы пишете на уровне детского лепета или бреда сумасшедшего, ваш вопрос, скорее всего, проигнорируют. Писанина в стиле малолетних "хацкеров" (в оригинале - l33t script kiddie hax0r - прим. переводчика) - абсолютно безнадежна, и гарантирует в ответ - тишину (или, в лучшем случае, порцию пренебрежения и сарказма).
Если вы задаете вопросы в форуме, где используется не родной для вас язык, то некоторые лексические и грамматические ошибки вам простят — но никакого прощения элементарной лени не ждите (да, мы обычно способны понять разницу). Кроме того, если не знаете точно, какие языки для адресата - родные, пишите по-английски. Занятые хакеры обычно просто пропускают вопросы на языках, которые они не понимают, а английский - рабочий язык Internet. Задав вопрос по-английски, вы уменьшаете вероятность, что его пропустят, не читая.
Посылайте вопросы во всем понятных форматах
Если вы искусственно затрудняете чтение вопроса, увеличивается вероятность, что вместо него ответят на вопрос, который прочитать не сложно. Поэтому:
*
Посылайте сообщение в виде обычного текста, а не в формате HTML. (Отключить HTML не так уж сложно.)
*
MIME-приложения обычно вполне допустимы, но только если они имеют реальное содержание (например, прилагается исходный текст или файл исправлений), а не просто автоматически генерируются почтовым клиентом (представляя собой, например, еще одну копию письма, но в формате HTML).
*
Не посылайте сообщения, в которых абзацы представлены одной строкой, визуально переносящейся на следующие строки на клиенте. (Это усложняет ответ на часть сообщения.) Исходите из предположения, что адресаты будут читать сообщения на текстовых терминалах со строками в 80 символов, и настройте соответственно вставку жестких переносов строк, завершая строку до 80 позиции.
*
При этом, однако, не разбивайте на несколько строк по фиксированной позиции данные (например, дампы журналов или записи сеансов). Данные необходимо включать в сообщения как они есть, чтобы адресаты были уверены, что они видят именно то, что видели вы.
*
Не посылайте сообщения в кодировке MIME Quoted-Printable в англоязычный форум. Эта кодировка может понадобиться при посылке сообщения на языке, не покрываемом кодировкой ASCII, но многие пользовательские почтовые агенты ее не поддерживают. Читать сообщения с разбросанными по тексту управляющими символами вида =20 неудобно и неприятно.
*
Даже и не думайте, что хакеры смогут прочитать документы в закрытых, патентованных форматах типа Microsoft Word или Excel. Большинство хакеров реагируют на них примерно так, как реагировали бы вы, если бы вам вымазали входную дверь поросячьим дерьмом. Даже когда они могут их прочитать, необходимость возиться с этими форматами их возмущает.
*
При посылке сообщения с машины под управлением Windows, отключите дебильную Microsoft-овскую поддержку "Smart Quotes". Это позволит избавиться от множества мусорных символов, разбросанных по всему сообщению.
*
В Web-форумах не злоупотребляйте "смайликами" и возможностями вставки "html" (если они предоставляются). Один-два смайлика - это, обычно, нормально, но разноцветный забавный текст наводит людей на мысль, что вы - ламер. Избыточное использование смайликов, цвета и шрифтов представляет вас как смешливую девочку-подростка, что не имеет смысла, если конечно вас интересуют ответы, а не секс.
При использовании почтового клиента с графическим интерфейсом, (например, Netscape Messenger, MS Outlook и им подобных) помните, что он может нарушать эти правила при использовании стандартных установок. В большинстве таких клиентов в меню есть команда типа "View Source". Проверьте с ее помощью по одному из отправленных сообщений, что посылается обычный текст, без лишнего мусора.
Точно и детально опишите проблему
*
Внимательно и четко опишите симптомы обнаруженной проблемы или ошибки.
*
Опишите среду, в которой она возникает (машина, ОС, приложение и т.д.) Укажите дистрибутив и релиз (например: "Fedora Core 1", "Slackware 9.1" и т.п.).
*
Опишите проведенное вами исследование при попытках понять проблему прежде, чем задавать вопрос.
*
Опишите самостоятельно выполненные вами шаги по диагностике и изоляции проблемы прежде, чем задавать вопрос.
*
Опишите последние изменения в конфигурации компьютера или программного обеспечения, которые могут иметь отношение к делу.
Сделайте максимум возможного, чтобы предугадать потенциальные вопросы хакера и заранее на них ответить в своем обращении за помощью.
Саймон Тэтхем (Simon Tatham) написал замечательное эссе, озаглавленное Как эффективно сообщать об ошибках. Я настоятельно рекомендую его прочитать.
Объем еще не значит точность
Будьте точны и информативны. Для этого недостаточно просто вставить в запрос большой объем кода или данных. Если имеется большой, сложный тестовый случай, приводящий к ошибке в программе, постарайтесь максимально сократить его.
Это полезно, как минимум, по трем причинам. Первая: продемонстрированные усилия по упрощению вопроса повышают вероятность получения ответа. Вторая: упрощение вопроса повышает вероятность получения полезного ответа. Третья: в ходе уточнения сообщения об ошибке вы сами можете найти решение или способ обхода проблемы.
Не утверждайте, что нашли ошибку
При возникновении проблем с тем или иным программным обеспечением не заявляйте, что нашли ошибку, если только абсолютно не уверены в этом. Подсказка: если вы не можете предоставить исправление исходного кода, которое решает проблему или тестовый пример для предыдущей версии, демонстрирующий неправильное поведение, вы, скорее всего, недостаточно уверены в своем заявлении.
Помните, что множество других пользователей с такой проблемой не сталкивались. Иначе вы бы уже узнали об этом при чтении документации или при поиске в Web (вы же сделали это, прежде чем делать подобные утверждения, не так ли?). Это означает, что, скорее всего, именно вы что-то делаете неправильно, а не программное обеспечение.
Создатели программного обеспечения прикладывают огромные усилия для того, чтобы оно работало как можно лучше. Если вы утверждаете, что нашли ошибку, то, тем самым, предполагаете, что они сделали что-то не так, и это почти наверняка им не понравится — даже если вы правы. Особенно недипломатичным будет написать "bug" ("Ошибка") в строке темы сообщения.
Когда задаете вопрос, лучше описывать проблему, исходя из предположения, что вы делаете что-то не так, даже если вы лично абсолютно уверены, что нашли ошибку. Если это действительно ошибка, вы прочитате об этом в ответе. Старайтесь вести себя так, чтобы занимающиеся поддержкой программы люди захотели извиниться перед вами, если обнаружена реальная ошибка, а не чтобы вам пришлось извиняться за свою бестолковость.
Публичное самоунижение не заменяет выполнение домашних заданий
Некоторые, уяснив, что не надо вести себя грубо или надменно, вымогая ответ, выбирают противоположную крайность - самоунижение. "Я знаю, я начинающий, неудачник и полный чайник, но...". Это отвлекает от сути и не имеет смысла. Особенно в сочетании с неопределенностью в описании фактической проблемы.
Не тратьте свое время, и наше, уповая на жалость. Представьте лучше факты и свой вопрос как можно яснее. Так вы заявите о себе гораздо лучше, чем путем самоунижения.
Иногда в Web-форумах есть отдельные места для вопросов начинающих. Если вы чувствуете, что такой вопрос может задать только начинающий пользователь, задавайте его именно там. Но и там не надо унижаться.
Описывайте симптомы проблемы, а не свои предположения
Бесполезно сообщать хакерам свое мнение о причинах проблемы. (Если ваши диагностические теории настолько ценны, надо ли обращаться за помощью к другим?) Поэтому проверьте, что сообщаете фактические симптомы происходящего, а не свои интерпретации и теории. Пусть интерпретацией и диагностикой займутся отвечающие.
Глупо:
Я постоянно получаю ошибки SIG11 при компиляции ядра, и подозреваю, что причина - микротрещина на материнской плате. Как лучше всего это проверить?
Разумно:
На собранном мной компьютере K6/233 на материнской плате FIC-PA2007 (чипсет VIA Apollo VP2) с 256MB памяти Corsair PC133 SDRAM начинают часто возникать ошибки SIG11 примерно через 20 минут после включения питания, в ходе компиляции ядра, но они не возникают в первые 20 минут. Перезагрузка ни к чему не приводит, а вот отключение на ночь помогает. Замена всей памяти не помогла. Соответствующая часть результатов типичной компиляции прилагается.
Описывайте симптомы проблемы в хронологическом порядке
Наиболее важная информация для выяснения причин происходящего часто связана с непосредственно предшествующими этой ситуации событиями. Поэтому необходимо точно описать, что вы делали, и что делала машина вплоть до возникновения проблемы. В случае работы с интерфейсом командной строки очень может помочь запись сеанса (например, с помощью утилиты script) и включение в сообщение пары десятков соответствующих строк.
Если программа, в которой произошел сбой, имеет опции диагностики (например, -v - детальное информирование), попытайтесь подобрать опции, добавляющие полезную отладочную информацию в "стенограмму" сеанса.
Если запись получилась достаточно длинной (больше страницы), имеет смысл заранее сформулировать проблему в начале, а потом указать хронологическую последовательность действий, к ней приводящих. В этом случае хакеры будут знать, на что обратить внимание при чтении сеанса.
Описывайте цель, а не отдельный шаг
Если вы пытаетесь разобраться, как что-либо сделать (а не сообщаете об ошибке), начинайте с описания цели. И только потом описывайте конкретный шаг на пути к ней, который вы оне смогли выполнить.
Зачастую люди, которым необходима техническая помощь, имеют на уме высокоуровневую цель и привязываются к одному из возможных, по их мнению, путей ее достижения. Они просят помочь выполнить один шаг, не отдавая себе отчета в том, что выбрали неверный путь. Чтобы разобраться в этом, может потребоваться много усилий.
Глупо:
Как заставить диалог выбора цвета в программе FooDraw воспринимать шестнадцатеричное RGB-значение?
Разумно:
Я пытаюсь заменить таблицу цветов в изображении нужными мне значениями. Сейчас я вижу только один способ сделать это - редактируя каждый слот таблицы, но я не могу задать шестнадцатеричное RGB-значение в диалоге выбора цвета программы FooDraw.
Вторая версия вопроса - разумна. Она позволяет получить ответ, в котором будет предложено средство, более подходящее для решения задачи.
Не просите отвечать на личный адрес электронной почты
Хакеры считают, что решение проблем должно быть общедоступным, прозрачным процессом, в ходе которого первая попытка найти ответ может и должна быть исправлена, если кто-то, более знающий, заметит, что этот ответ - неполный или некорректный. Кроме того, отвечающие отчасти вознаграждаются тем, что их компетентность и знания будут замечены коллегами.
Когда вы просите личного ответа, вы мешаете как процессу выработки решения, так и получению вознаграждения. Не делайте этого. Отвечать лично - это выбор отвечающего, — и если он так и делает, то обычно потому, что считает вопрос слишком неудачно сформулированным или очевидным, чтобы быть интересным другим.
Из этого правила есть одно небольшое исключение. Если вы предполагаете, что на свой вопрос получите множество подобных между собой ответов, не забудьте магические слова "пошлите ответ мне, а я резюмирую полученные ответы в статье для дискуссионной группы". Попытка уберечь дискуссионную группу или список рассылки от потока, по сути, идентичных сообщений - это очень любезно, но вы должны сдержать обещание и послать итоговое резюме.
Задавайте ясные и четкие вопросы
Неограниченные вопросы требуют обычно неограниченного времени для ответа. Люди, скорее всего способные дать вам полезный ответ, еще и самые занятые люди (еще и потому, что большую часть своей работы делают сами). Такие люди ревностно относятся к своему времени, и поэтому часто не воспринимают неограниченные вопросы.
Вероятность получения полезного ответа повышается, если вы четко даете понять, чего добиваетесь от отвечающих (предоставить ссылки, послать код, проверить ваше решение и т.п.). Это сконц