Comments 38
Молодцы что не скрываете ибо не ошибается только тот кто ничего не делает.
Ошибки в программном продукте для поиска ошибок. Очень интересно :)
Ошибки в программном продукте для поиска ошибок. Очень интересно :)
+8
Я все больше и больше убеждаюсь в том, что непосредственные контакты производителей с потребителями (разработчиков с пользователями) приносят огромную пользу. Жаль, что не все это понимают.
Меня на предыдущем месте работы не раз тыкали носом: «Пиши код, $%#$ь, для работы с пользователями есть специальная служба поддержки и SMM-манагеры»
Меня на предыдущем месте работы не раз тыкали носом: «Пиши код, $%#$ь, для работы с пользователями есть специальная служба поддержки и SMM-манагеры»
+7
Я за последние полтора года (которые в команде, где весь саппорт лежит непосредственно на разработчиках) в этом убедился окончательно. Скорость реакции на багрепорты отличная, плюс, когда в комментарии приходит непосредственно разработчик фичи и внятно объясняет, что сломано и где он будет это чинить — а заодно, походя, дает воркараунд — это очень способствует лояльному коммьюнити. Ну и разработчики при этом знакомятся со сценариями реального использования продукта.
Правда, для нас это работает потому, что пользователи — тоже разработчики, так что там общаться можно на вполне продвинутом техническом уровне, не насилуя свою психику.
Правда, для нас это работает потому, что пользователи — тоже разработчики, так что там общаться можно на вполне продвинутом техническом уровне, не насилуя свою психику.
0
Не поделитесь, как возрастает ваш доход от статей на Хабре о PVS-Studio? Думаю многим было бы интересно.
+4
Два ответа:
1. Как только наш блог на Хабре перестанет существовать, значит стало «не выгодно» :-).
2. С другой стороны, на самом деле Хабр все-таки российский ресурс, а у нас продажи 85% в США и Европе, 10% в России.
Так что Хабр — это для души, в комментах сразиться. И потренироваться в написании статей.
1. Как только наш блог на Хабре перестанет существовать, значит стало «не выгодно» :-).
2. С другой стороны, на самом деле Хабр все-таки российский ресурс, а у нас продажи 85% в США и Европе, 10% в России.
Так что Хабр — это для души, в комментах сразиться. И потренироваться в написании статей.
+13
Не надо провоцировать. Все, что люди делают — они делают ради своей прямой или косвенной прибыли.
Прибыль либо прямая материальная, либо отложенная косвенная.
Есть очень мало контр-примеров, когда человек что-то осознанное сделал и непонятно зачем это ему.
Один из контр-примеров — доказательство гипотезы Пуанкаре Перельманом. Второй пример: император Диоклетиан, известный нам от Гоши из «Москва слезам не верит»
Прибыль либо прямая материальная, либо отложенная косвенная.
Есть очень мало контр-примеров, когда человек что-то осознанное сделал и непонятно зачем это ему.
Один из контр-примеров — доказательство гипотезы Пуанкаре Перельманом. Второй пример: император Диоклетиан, известный нам от Гоши из «Москва слезам не верит»
-1
UFO just landed and posted this here
Могли бы уж и скидос сделать парню
+1
Замечательный хэппиэнд, но я думал, что будет немного «хэппиэнднее». Что Михаил (точнее, его компания) получит скидку на ваши продукты за обнаружение ошибки и, главное, за значительную помощь в ее отлове.
+2
Странно, что вы так долго не могли поверить в то, что в вашем продукте может быть ошибка :)
«Ошибка у нас? Не, не может быть, давайте проверим еще раз» :))
«Ошибка у нас? Не, не может быть, давайте проверим еще раз» :))
-1
Извините, но я Вас немного не понимаю…
Посмотрите на ситуацию с другой стороны: пользователь говорит, что в продукте ошибка. Она у Вас не воспроизводится. Более того, она не воспроизводится ни у одного из Ваших коллег.
По-моему, наоборот, всё отлично: создатели вместо того, чтобы повесить тег «Can not reproduce», начали очень основательно в этом разбираться.
А дальше всё было очень долго, потому что никак не получалось воспроизвести баг, а значит — не было ясно, как же его решать.
Посмотрите на ситуацию с другой стороны: пользователь говорит, что в продукте ошибка. Она у Вас не воспроизводится. Более того, она не воспроизводится ни у одного из Ваших коллег.
По-моему, наоборот, всё отлично: создатели вместо того, чтобы повесить тег «Can not reproduce», начали очень основательно в этом разбираться.
А дальше всё было очень долго, потому что никак не получалось воспроизвести баг, а значит — не было ясно, как же его решать.
+11
> Так исправление одной ошибки в продукте за $250 дало нам продажу другого нашего продукта за совсем другие деньги.
Не уверен, что одно следовало из другого. На его начальника вы и другим путем могли выйти.
Надеюсь Вы им скидочку хоть сделали? А то как-никак помогли вам серьёзный баг исправить.
Не уверен, что одно следовало из другого. На его начальника вы и другим путем могли выйти.
Надеюсь Вы им скидочку хоть сделали? А то как-никак помогли вам серьёзный баг исправить.
0
Мне тоже было интересно в этом поучаствовать. Всегда приятно, когда разработчики слушают своих пользователей и оперативно отвечают на запросы. В данном случае — очень оперативно, спасибо!
PS Скидку нам всё же сделали :)
PS Скидку нам всё же сделали :)
+55
Михаил, спасибо что отметились в комментариях!
+9
Наверно здорово, когда большинство твоих клиентов — тоже программисты, и с пониманием относятся к багам. Завидую!
+3
Через тридцать секунд Павел сказал:
— Евгений… Ну что же ты забыл...
так скомкать самый интересный момент повествования просто не честно по отношению к нам!!!
+6
Жаль, что зачастую компании быстро исправляют ошибки ДО продажи и ОЧЕНЬ долго после получения денег на счет…
+3
А вот у меня вопрос «по существу», так сказать… насколько я понимаю, анализ кода возможен только когда проанализированы зависимости. Тогда расскажите, как системы паралелльной компиляции могут на разных машинах компилировать разные файлы из одного и того же решения? Я думал что если у файлов зависимости нужно их компилировать в определенном порядке. Или я не прав?
Вопрос актуален т.к. с параллельным анализом идет, в принципе, то же самое. Ведь если можно параллельно анализировать файлы, то можно воткнуть Xeon Phi и параллельно анализировать их на таком мегапараллельном железе. Ну или на кластере анализировать.
И еще, как вы относитесь к использованию специализированного железа для упрощения задач анализа кода?
Вопрос актуален т.к. с параллельным анализом идет, в принципе, то же самое. Ведь если можно параллельно анализировать файлы, то можно воткнуть Xeon Phi и параллельно анализировать их на таком мегапараллельном железе. Ну или на кластере анализировать.
И еще, как вы относитесь к использованию специализированного железа для упрощения задач анализа кода?
0
Никаких фундаментальных проблем с этим нет. Как компиляция легко параллелится на уровне файлов, так и анализ параллелится. Тот же IncrediBuild умеет некоторые анализаторы запускать.
Специализированное железо… Если это 32-ядерный компьютер, то отлично. У нас еще несколько лет назад некоторые клиенты радовались, как их 16-32 ядер загружаются с помощью анализатора нашего.
Специализированное железо… Если это 32-ядерный компьютер, то отлично. У нас еще несколько лет назад некоторые клиенты радовались, как их 16-32 ядер загружаются с помощью анализатора нашего.
0
Я имею ввиду не-x86 железо. Понятно что если все паралеллится то и 60 процессоров будут прекрасно работать. Имеются ввиду более смелые подходы, например разбор текста на GPU или FPGA. (Кстати, ссылка в тему.)
0
Че-то сложно все. Нам же надо запускаться на том, что есть у типичных разработчиков, а не программно-аппаратные комплексы продавать :-).
+1
CUDA есть практически у всех, а аппаратные решения — это то, что движет нас вперед! К тому же, при цене в 9к за набор лицензий, anything goes!
0
У нас нет проблемы с временем анализа.
0
Сколько занимает проанализировать весь Boost на commodity железе (не 32-core)?
0
Не тот вопрос. Если человек работает с инкрементальным анализом, то у него проверяются только те файлы, которые были перекомпилированы только что. А это быстро проходит. А если речь о ночной проверке на билд-сервере, то главное чтобы за ночь отрабатывало и слава богу.
0
Но ведь это неправильно. Нужно переанализировать не только те файлы которые были только что изменены, но и те, которые зависили от тех что изменились. Или нет?
+1
так этим как я понимаю система сборки занимается, пересобирает все зависимости, потом все пере-собранные файлы прогоняются через анализатор.
Хоть я не согласен что время проверки не важно, при СІ прогоне результат хотелось бы получить пораньше (можно запускать параллельно с тестами, желательно чтобы статический анализ работал не намного дольше чем запуск тестов).
Хоть я не согласен что время проверки не важно, при СІ прогоне результат хотелось бы получить пораньше (можно запускать параллельно с тестами, желательно чтобы статический анализ работал не намного дольше чем запуск тестов).
0
Все правильно, так и делается.
0
>> Михаил хотел, чтобы сообщения об ошибках CppCat выдавались не в отдельное окно, как сейчас, а в стандартное окно ошибок Visual Studio. С моей точки зрения «хранителя продукта» CppCat это пожелание выглядело нецелесообразным, и я попытался объяснить в почте, что у нас специально сделано отдельное окно, чтобы не путать наши сообщения и сообщения Visual Studio.
Выдачу в окно Error List стоит делать хотя бы потому, что так делает все остальное в VS, включая другие сторонние расширения. И пользователи знают об этом, и поэтому прежде всего будут искать ошибки именно в этом окне. Плюс, там есть стандартные удобные фичи вроде поиска и фильтрации («только текущий проект» etc).
>> выдается уведомление в трее и меняется заголовок окна анализатора.
Ваше расширение для VS выдает сообщения в трее? Это действительно… очень нестандартный UI design для расширения, мягко говоря.
Выдачу в окно Error List стоит делать хотя бы потому, что так делает все остальное в VS, включая другие сторонние расширения. И пользователи знают об этом, и поэтому прежде всего будут искать ошибки именно в этом окне. Плюс, там есть стандартные удобные фичи вроде поиска и фильтрации («только текущий проект» etc).
>> выдается уведомление в трее и меняется заголовок окна анализатора.
Ваше расширение для VS выдает сообщения в трее? Это действительно… очень нестандартный UI design для расширения, мягко говоря.
+3
> Error List стоит делать хотя бы потому, что так делает все остальное в VS…
Ну-ну. Даже статический анализатор, встроенный в Visual Studio, выдает сообщения в своё собственное окно, что позволяет реализовывать специфические функции.
Error List совершенно неюзабелен в плане функциональности. Вывести мало. Нужно ещё дать интерфейс для работы с этим списком.
Ну-ну. Даже статический анализатор, встроенный в Visual Studio, выдает сообщения в своё собственное окно, что позволяет реализовывать специфические функции.
Error List совершенно неюзабелен в плане функциональности. Вывести мало. Нужно ещё дать интерфейс для работы с этим списком.
+1
Пользуясь случаем, прошу всем, кому нравится CppCat, отметить это в Visual Studio Gallery.
0
Я думал, хэппи-энд будет заключаться в том, что ошибка уже полгода находилась самим анализатором в ночных билдах, но на нее никто не смотрел. А так — ошибка как ошибка ;)
+2
Sign up to leave a comment.
Сколько стоит одна ошибка в наших программах, или какие ошибки бывают в PVS-Studio и CppCat