Как стать автором
Обновить

Комментарии 90

В Windows в таких окнах работает Ctrl+C — скопировал/вставил в поиск и нашел, что надо
классно, я не знал, но к сожалению в последнее время у меня среда слишком гетерогенна, и чаще это не Windows
В gtk/qt messagebox'ы можно выделять/копировать мышкой вроде бы.
так быстро не получится — так копируется еще заголовок и кнопки, а еще куча тире
Все равно гуглится на ура )
Нативно!)))))))
просто побеждает всеобщая лень убирать лишнее из того что скопировано)
но далеко не каждый это знает ;)
но далеко не каждый это знает ;)
Вот-вот. Есть куча «юзеров», которые вместо Ctrl+C/Ctrl+V, чтобы прислать пару строк в плэйн-тексте делают скриншот всего экрана (не скриншот окна по Alt+PrintScreen, а прямо весь экран с десктопом и кучей ненужного изображения), потом вставляют эту картинку в документ MS Word, сохраняют и аттачат к письму всё это убожество. Вот и получается: игла в яйце, яйцо в утке, утка в зайце…
А всё из-за нехватки элементарной компьютерной грамотности.
Всё из-за того, что проектировщик интерфейса не додумал сценарий.
бывает что DOC файл еще зипуют :(
ок, ещё добавьте "… заяц в сундуке" :)
Не, лучше «Заяц в шоке»
Ага, а потом еще пишут целый пост на хабре… ;)
Если бы все пользователи были такими… На деле ещё хуже, скажет: «у меня не работает». И всё! Сам ищи, что у него не работает.
Еще хуже, года оно и не должно работать. )
да, это очень удобно! но к сожалению не во всех окнах с сообщениями об ошибках это работает…
Стандартные окна Windows (ошибка/информация/предупреждение) поддерживают сочетание клавиш Ctrl+C (заголовок и текст сообщения копируются в буфер обмена).
А я всегда Spy++ пользовал :damn:
Аналогично. Пока не узнал про программку www.structurise.com/kleptomania/russian.shtml, которая любой текст с экрана, написанный системным шрифтом, распознаёт и даёт скопировать.

А всё почему? Потому что на это нет ни единого намёка в интерфейсе того виндового окошка: ни текст не выделяется, ни контекстного меню с командой Copy нет.
Как бы сообщение об ошибке в подавляющем большинстве случаев делаются через MessageBox(). Отсюда все фичреквесты отправлять нужно в майкрософт.
Можете привести хотя бы один пример, когда Микрософт реализовала просьбу коммьюнити о реализации какого-либо функционала?
А вы знаете что получается если выполнять все просьбы пользователей?
Я про одну просьбу говорил, все-то зачем?
Знаем, получается Linux ^_^
Конечно. Погуглите EF4.0 и MS Velocity
Windows 7 вся так сделана (судя по рекламе)
Нет, но чьи это проблемы?
Это всё равно что написать вместо текста ошибки «Произошла какая-то херня, я наверно пьяный был, когда этот код писал, и понятия не имею, с чем связана ошибка. Поищите в инете, может кто-нибудь уже знает в чем дело.»
ну мы же прекрасно понимаем, что без ошибок ПО не бывает
Понятно, что не бывает, но гуглить ошибку в программе — это уж слишком, на мой взгляд. Вместо этого, лучше разместить кнопку «Обратиться в поддержку», если ошибка неизвестна либо описание возможных причин ошибки со ссылкой на KB, если это известная проблема или ограничение возможностей приложения.
помню гуглил несколько раз ошибки, но они выскакивали на «синем экране» :)

Эх. Крути не крути а Ctrl+C там не работает
С него и погуглить нельзя :)
НЛО прилетело и опубликовало эту надпись здесь
Есть еще ошибки, вернувшиеся из сторонних dll (плагины там, да и виндовые порой не все ошибки описаны), которые не всегда получается обработать и возникнуть они могут после выхода программы (если эта dll обновилась например).
а в поддержку по каждому чиху тоже не айс (и с той и с другой стороны) обращаться.
хотя согласен, где-то тут проскакивала мысль, что если в поддержку обратились второй раз с той же проблемой, то «надо что-то менять»
Необработанная ошибка из чужой библиотеки, возникшая в Вашей программе — тоже не айс :) Считаю, что если такая ошибка возникла, то всё равно пользователь должен иметь возможность обратиться в поддержку. А Вы, в свою очередь, можете добавить workaround для неё.
В любом случае, контакт с пользователями надо держать. Это даёт:
1. Ваш продукт становится качественнее.
2. Пользователю легче на душе :)
3. Работы саппорту, конечно, больше, но см. п.1

Написал бы статью из своего опыта, да грехи не пускают ;)

в поддержку обращаться айс.
Если не обращаться, разработчик или не узнает про ошибку, или узнает позже.

Даже если ошибка в сторонней DLL, человек который из этих DLL че-то вызывает лучше сможет объяснить автору DLL, почему возникла проблема, нежели человек, который вообще не знает, что такое DLL. В крайнем случае, можно написать workaround этого бага.
Пользователю программы ваши «внутренние отношения» не важны. Важно то, что программа не работает.
Кстати, позвольте разьясню. Мне, кажется, я понял что хотел сказать товарищЪ-заминусованный.
Может в программе, по возможности кэтчить ошибки для вывода не просто сообщения: «Внимание! Ошибка 55434», а помогать пользователю без необходимости чтобы тот гуглил. Ну хотя бы в духе: «Нет связи с сервером. Проверьте подключение к Интернету», или «Приносим свои извинения. Попробуйте закрыть и открыть программу снова. Если ошибка повторится, пожалуйста, сообщите разработчикам по адресу бла-бла-бла. Это поможет сделать программу лучше. Спасибо.»
Ведь заставлять пользователя разбираться с какими то кодами… как то не комильфо.
Наверное такие текста подбирались с тем учётом, что эти сообщения об ошибках будут передаваться в техподдержку. Затем соответствующим специалистам по номеру ошибки гораздо легче определить причину, чем пользоваться размытой формулировкой.
согласен. именно поэтому рядом с нормальным френдли текстом должна быть кнопка «отправить инормацию разработчикам», которая еще и дебаг инфу шлет. я, например, так и сделал в свое время.
чем больше текста, тем меньше вероятность, что пользователь его будет читать.
это да. но мы говорим не о пользователе, который закрыл не читая (такому все равно что там написано — хоть код, хоть подробный текст), а о пользователе который прочел, и хочет разобраться — иначе почему он гуглит
Тогда уж должна быть ссылка на соответствующую страницу официальной базы знаний разработчика программы.
да, безусловно, но если KB нет, то хотя бы так
Если её нет, то падает и вероятность появления в Интернете мудреца, расшифровавшего ошибку.
НЛО прилетело и опубликовало эту надпись здесь
Может быть проще сразу в faq на вашем сайте отправлять???
Уже вижу орды «оптимизаторов» ожесточенно копирующих коды ошибок в ключевые слова различных дорвеев >_<
да их и так хватает (http://www.fixerrorfast.com/ttfix-12029_error-zz0001 )
В этом есть толика здравого смысла — еще бы сопоставить ошибкам уникальные идентификаторы и можно создать базу знаний по ошибкам (народными средствами или же силами производителя).
Вообще прикольная идея. Реально будет проще, но и Ctrl+C/Ctrl+V — тоже помогают. =)
Хорошая мысль. Давно пора.
PS.«через чур» — «чересчур»
«окно сообщающее» — «окно, сообщающее»
хорошим тоном для разработчиков будет делать такой обработчик ошибок, чтобы пользователь сразу видел в чём проблема
Далеко не всегда предложенный разработчиком метод решения проблемы является единственно верным или подходящим для вашего конкретного случая.
НЛО прилетело и опубликовало эту надпись здесь
Я не разработчик, поэтому извините за глупый вопрос:
А try..except не сработает, да? Т.е.
try{
open_port(12345)
}
except{
MessageBox(«Не могу открыть порт 12345»);
}
вывалит ошибку Unexpected exception?
НЛО прилетело и опубликовало эту надпись здесь
Идея хорошая, но не для всех я думаю и помоему можно далеко не ходить, а сделать сервис, который вин-апи будет чуть менять, чтоб это окошко прям сегодня появлялось.
НЛО прилетело и опубликовало эту надпись здесь
Не знаю как для вас, но для меня логи в продуктах майкрософт по уровню полезной информации равносильны филькиной грамоте.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
я к тому, что простое и понятное сообщение «невозможно проверить обоновления в интернете» ведут за собой до десятка вариантов ответов «почему?»
Вы не совсем правильно меня поняли. Лог должен нести исчерпывающую техническую информацию о ходе работы приложения для того, чтобы четко классифицировать, идентифицировать проблемы, и главное — говорить о том, что такое было сделано после чего работать перестало.

А вы о прямо противоположном толкуете. Еще предложите им сделать аналог «Центра справки и поддержки» с объяснениями а-ля simplewiki, думаю оценят.

И, кстати, простого и универсального решения любой проблемы не существует — это так, к слову.
НЛО прилетело и опубликовало эту надпись здесь
А мне очень понравились некоторые сообщения от линуксового софта в стиле «Простите...» и «Извините, но что-то не работает» :)
Правда при запуске из терминала удается выйти из некоторого ступора )
меня поразило сообщение wvdial-а… нечто в духе «не могу получить ответа от модема, запускаю гномППП и надеюсь на лучшее» (вольный перевод по памяти)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
а если ошибка произошла при подключении к инету?
вообще реальный случай был:
у знакомого в фирме на сервере возникли некие проблемы с сетевым подключением. меня пригласили глянуть. стоял там антивирус Симантековский, который русским по белому сказал, что проблемы со стеком tcp/ip и,… правильно! предложил посмотреть подробности в интернете.
Простите, что не по теме, но что это у Вас за кнопочка в заголовке слева от «закрыть»?
Идея неплохая, но только это костыль к плохому интерфейсу. В хорошем интерфейсе должна быть человеко-понятная ошибка, со справкой по ней, без всякого интернета.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
в винде же есть стандартное «решение проблем», которое вроде само «гуглит»…
предложите разработчику самому вставить описание и решение ошибки в окно ошибки, вмето того, чтобы протсо её исправить, чтобы она не появилась…
Поддержу многих из комментариев — такая кнопка говорит о том, что разработчики лентяи и не знаю как исправить свою ошибку.
Правильно — предоставить варианты действия, а не ставить пользователя в тупик.

Например, вчера первый раз воспользовался стандартным упаковщиков Win7 в архив ZIP, тот который в explorer через правую кнопку. Сам сижу на маке.

Я был приятно удивлён до глубины души продуманностью такой простой функции как «заархивировать»: попытался заархивировать в папку, куда у меня были права только на чтение.
Обычно в таких случаях программеры пишут «идите нафиг, прав доступа нет», здесь мне рассказали о проблеме и тут же предложили решение!


Вы путаете теплое с мягким!

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

А то, что вы описали просто продуманный процесс работы программы. Здесь нет ошибки. Если выдается сообщение, что «запись невозможна» — это тоже не ошибка, а задокументированное поведение, а то, что программисты не продумали возможное поведение пользователя в случае недоступности ресурсов для сохранения — это совершенно иной вопрос, который, вероятно, зависит от компетенции разработчиков. Т.е. проблемы юзабилити к программным ошибкам не имеют отношения, а именно о них был пост.

Все гораздо сложнее, чем просто сообщение об ошибке. И давайте не забывать, что есть границы разумного в обработке ошибок. Т.е. часто ошибку проще исправить, чем заранее находить все возможные варианты решения возможных ошибок, просто программа никогда бы не была завершена.

Часто решение в интернете просто обходит ошибку, а не исправляет причины ее возникновения, к сожалению.
Логичнее привести URL company.com/product/exception или google.com/search?q=... в тексте сообщения. * Пользователь привык к GET линкам и POST кнопкам, не стоит его смущать
* Система знает чем открывать ссылки
* Разработчик может предлогать решения или редиректить в поисковик

Копирование текста в MessageBox по шорткату не извиняет разработчиков. Эту фичу знают доли процента пользователей, её просто спрятали. Возможно диалог создавался для выдачи информации разработчику как и javascript alert. Но кодерам понравилось — нормальная обработка ошибок сложнее тупого сдыхания.
Просто MessageBox — системное сообщение и работает всегда, т.е. этот код мог быть написан до того как разработан основной пользовательский интерфейс или эта библиотека не имеет вообще ни какой связи с ним для уменьшения связанности, или даже выполняются в разных потоках.
Это проблемы технического и организационного характера.

Исключения пробрасываются вверх и обрабатываются единообразно. Библиотека, использующая GUI для отображения ошибки, явно не в себе — код может быть вызван с другой стороны мира.

Определить наличие метода не сложно.
$ grep -r MessageBox.

В веб разработке доступны alert, но используется очень редко. Пользователя слишком редко потерять.
К сожалению, не существует единых средств обработки ошибок (или к счастью).

Под библиотекой я имел ввиду ту часть программы, которая выполняет сервисные функции и не имеет доступа к GUI или вообще не знает о способе отображения. НО MessageBox — на столько стандартная вещь, что работает по Windows везде. Понятно, что можно воспользоваться стандартными средствами логирования windows, но так ведь проще… ;)

Вообще — есть неплохие средства, типа TraceTool 12.1: The Swiss-Army Knife of Trace
Как в старой шутке:

«Microsoft начала продавать рекламные места в сообщениях об ошибках Windows»

По сути кнопка «google me» является новым источником пользователей для просмотра рекламы гугла.

P.S.: еще в программе можно будет настроить какой поисковый движок использовать :)
Хорошая идея! Можно заработать разместив не «ГуглМи», а Adsense. :) Пользователи будут щелкать и накручивать вам деньги. :)
да главное надо в GCC это встроить, а то сколько можно из консоли копировать?:)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации