All streams
Search
Write a publication
Pull to refresh
632
0
Тагир Валеев @tagir_valeev

Программист

Send message
С суммой квадратов как будто бы правильнее так:
double hypotenuse(double a, double b)
{
   if(b>a) {double c=a;a=b;b=c;}
   double frac = a/b;
   return a*sqrt(1+frac*frac);
}

Так можно и 10^200 подавать на вход. Промежуточный результат всегда в рамках конечного результата.
> В теле тест-метода слишком много assert.

Я всегда в assert подписываю текстовое сообщение, тогда таких проблем не возникает.

А циклы в тестах нужны, как и в любом другом коде. Проще перечислить в массиве несколько нетривиальных входов, ожидаемых выходов и промежуточных результатов и затем в цикле каждый элемент этого массива протестировать. Так тест будет очевидно проще и надёжнее. Чтобы протестировать новый интересный случай, достаточно будет добавить запись в массив, а не копипастить кусок кода, внимательно исправляя его во всех нужных местах, включая те же текстовые сообщения.

Чтобы убедиться, что тест тестирует, надо его сломать. Например, в качестве одного из ожидаемых выходов подать заведомо неверный результат и убедиться, что действительно тест падает. Затем исправить и убедиться, что тест не падает.
Да что ж за тормоза такие сегодня на хабре, пост то отправляется, то не отправляется :(
Впрочем, тут есть кое-какие альтернативы. Но опять же браузеро-специфичные.
Честно говоря, для меня загадка, почему так происходит. Формат описан в RFC 12 лет назад. Он не какой-то там убито-проприетарный или завязанный на какие-то там COM/OLE. Ну да, это не официальный стандарт W3C, ну и что? Почему его до сих пор не поддержали все браузеры, я не понимаю.
Честно говоря, для меня загадка, почему так происходит. Формат описан в RFC 12 лет назад. Он не какой-то там убито-проприетарный или завязанный на какие-то там COM/OLE. Ну да, это не официальный стандарт W3C, ну и что? Почему его до сих пор не поддержали все браузеры, я не понимаю.
После установки системы вы что делаете? Правильно, настраиваете её. Вот частью настройки является запрет autorun в реестре. Это делается одним и тем же способом, начиная с Win95.

Autorun появился, когда он работал только для компакт-дисков, а резаков ещё не было. Создать зловредный CD и подсунуть жертве — это надо было постараться. Зато это было удобно и юзерам, и корпорациям, производящим софт на CD: вставил диск, само заработало. Представляете, сколько затрат на саппорт и возвратов это сэкономило? «Я вставил диск, а ничего не работает, помогите!» Другой вопрос, почему он оказался по дефолту включен и для флэшек.
Иногда полезно сохранить веб-страницу со всеми картинками, чтобы получился один файл, который можно открыть одним кликом. Если есть альтернативный способ решения этой проблемы, подскажите его.
Почему не сделают? Вы на Windows Update подписаны? Регулярно приходят секьюрити фиксы. И вы вообще прочитали KB, в которых описана эта проблема?
Поставил. MHTML-файлы открываются. Полистал реестр: патч сделал именно то, что описано в моём комментарии: заблокировал выполнение скриптов в MHTML.
А MHTML где ещё открывается?

Вообще статья неточно пишет. На сайте Микрософт приводятся более мягкие варианты решения (смотрите Mitigating Factors and Suggested Actions): запретить выполнение скриптов во всех MHTML-файлах (не запрещая файлы в целом), разрулить это на уровне «зон безопасности IE» и т. д. Не вижу, откуда взялась инфа «отказаться от открытия таких файлов». Ну и написано, что над патчем активно работают.
Очевидно, патч не могут выпустить мгновенно после появления уязвимости. Более того, для всестороннего тестирования патча как ни крути может потребоваться несколько дней времени, а то и неделя. Если в новости пишут «патч уже выпущен», скорее это просто новость запоздалая =)
Ок, достаточно убедительно :-)
То есть всё-таки построение отъедает N log N? Тогда поправьте статью :-)
priority_queue в свою очередь полезно, например, для эффективной реализации алгоритма Форда-Фалкерсона поиска максимального потока в сети. А он уже для много чего полезен :-)
Имхо, следовало отметить, что хотя в heapSort гарантируется N log N (в отличие от qsort, где может быть и N^2), константный множитель больше, поэтому среднее время сортировки заметно превышает таковое для qsort.
Не говорите. Некоторое время назад одна моя коллега переползла с FF на IE, потому что FF «страшно тормозил и падал». Угадайте, в чём было дело. Не знаю как сейчас, но тогда там точно текла память и довольно быстро.
Идея форматирования кода хороша, и я её поддерживаю, но она идёт вразрез с автоформаттерами IDE, у которых часто своё представление о том, как выровнять строки и где сделать перенос строки. Не использовать их совсем тоже плохо, особенно новичкам в компании, если они привыкли к другому стилю кодирования. В компании может быть сделан шаблон автоформатирования, который соответствует внутренним требованиям. Кое-где он даже автоматически применяется при коммите кода ко всем файлам. С одной стороны можно не греть голову, правильно расставляя пробелы и скобки, но с другой стороны любой сотрудник может одной волшебной кнопкой испортить тщательную ручную расстановку переносов строк и пробелов в совсем другом фрагменте кода. Этого даже никто не заметит: код компилируется, тесты проходят.

В связи с этим возник вопрос: можно ли в популярных IDE пометить фрагмент кода, как не требующий автоформатирования? Или, скажем, разрешить автоформаттеру для фрагмента править отступы, но запретить править переносы строк?
Жизнь на Меркурии? Фантастика!

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity