Замечания и предложения

Да, я понимаю, что Вы туда ничего плохого не загружали. Просто интересно, почему ругается на него. Повторюсь, раньше просто предупреждал, а теперь прям сразу удаляет.

Вы кстати привели ссылку на анализ ссылки, как я понимаю. Чтобы посмотреть результаты для файла, надо там нажать ‘Перейти к анализу загруженного файла’. Вот там уже появляются какие-то антивирусы, которые срабатывают на него.

https://virustotal.com/ru/file/7127dc0c0e6e93526f9e63d1b06e664cc928476571faf3cae278d3e90b51a8dd/analysis/1464294527/

Ух ты. Да, увидел. Интересно, что результат последнего анализа был от 25 мая. А файл на сайте датирован 23 мая - он не был изменен. Поэтому странно, что virustotal нашел что-то за последний день. У меня вирус AVG тоже ни на один файл не ругается. Странно.

25 мая? Я вижу 2016-05-26 20:28:47 UTC. Это я сам вчера сканировал.

На вкладке Дополнительные сведения в графе First submission как раз 2016-05-23 15:45:37 UTC.

Вот поэтому все “серьёзные конторы” работают с Лабораторией Касперского и не ломают голову с разными “Ух ты”, рассматривая сообщения от антивирусного зоопарка. Да, этот антивирус платный, но либо ты заплатил и спишь спокойно, либо ломаешь свой мозг и будоражишь окружающих, но зато бесплатно.

Никаких вирусов в инсталяте нет. За баги каких-то малоизвестных антивирусов мы не отвечаем.

Windows Defender является компонентом Windows, а начиная с Windows 10 вообще не отключается без вмешательства в реестр/групповые политики. Лучше было бы разобраться в причине.

2 лайка

Вы предлагаете разработчикам разбираться в особенностях ложного срабатывания какого-то “сторожевого” модуля, включенного в Windows или в особенностях инсталлятора, который разработчики используют? Достаточно уж того, что устанавливаемое ПО никакого вредоносного кода не содержит. А по поводу прочего на месте разработчиков я бы написал грубо, но совершенно точно, словами Фаины Раневской.

Фаину Георгиевну ужасно раздражало, когда, увидев ее на улице, прохожие (особенно дети) начинали кричать: «Муля, не нервируй меня!» Однажды ее окружила толпа школьников, радостно скандировавших знаменитую фразу из «Подкидыша». Тогда Раневская и сказала в сердцах: «Пионеры, идите в **пу!». Схожая участь постигла тимуровцев, заявившихся домой к актрисе с предложением помочь по хозяйству. «ПионЭры! Возьмитесь за руки – и идите в **пу!» — отчеканила она и захлопнула дверь.

Так что, господа “ПионЭры”, может хватит страдать фигней с этими вирусами?

Специально для “озабоченных”:

Защитник Windows (или Windows Defender) — встроенный в последние версии ОС антивирус от Microsoft — Windows 10 и 8 (8.1). Он работает по умолчанию, пока вы не установите какой-либо сторонний антивирус (а при установке, все современные антивирусы отключают Защитник Windows)

Вот и http://online.drweb.com/ говорит о том, что вирусов в инсталляте нет.

Я не представляю, что значит разбираться в причине ложных срабатываний.

Мне кажется, вы говорите о разных вещах. То, что вируса нет, никто, думаю, не сомневается. И непонятно, зачем тут организовали парад антивирусов. Речь о том, что если пользователь просто ставит себе чистую 10-ку, без всяких антивирусов, то не может скачать ваш инсталят. Я думаю, это реальная проблема в юзабилити. Уже предвижу, как школьники в следующем году будут на неё жаловаться.

3 лайка

Я же и говорю, что не представляю, как разбираться в причине ложных срабатываний

1 лайк

О каком юзабилити речь?

Все основные независимые антивирусные лаборатории включают Windows Defеnder в программу тестирования в том или ином качестве, но общий результат продукта можно обозначить как большой жирный ноль. Это не худший антивирусный продукт, протестированный PC Magazine за последнее время, но он делал действительно фатальные ошибки в собственных тестах.

Достоинства протестирован большим количеством независимых лабораторий;поставляется интегрированным в Windows 8 и 8.1.

Недостатки очень слабый совокупный результат от независимых лабораторий;низкая эффективность в собственном тесте на блокировку вредоносного ПО;мизерный результат в тесте на блокировку вредоносных ссылок;посредственная защита от фишинга (на базе технологии Internet Explorer).

Общая оценка «Защитник Windows» пытается защитить вашу систему Windows 8 и 8.1, если Вы не стали устанавливать антивирусы сторонних вендоров. Тестирование показало, что выбрав практически любой бесплатный антивирус, Вы получите более эффективную защиту, чем предоставляет данное интегрированное системное решение.

Для “десятки” оценки этого средства аналогичны. Их полон Интернет. Я думаю, достаточно неплохой выход - предупредить о возможности ложного срабатывания Windows Defender.

Я думаю, это реальная проблема в юзабилити.

Это конечно не наши проблемы, а проблемы антивирусов. Но им нужно сообщать о ложных срабатываниях. Нашел вот форму https://www.microsoft.com/en-us/security/portal/developer/ContactUS.aspx

Вы не поверите, но разработчики обращаются в АВ-компании по поводу ложных срабатываний (АВ не любят пакеры, к примеру: очень много ложных срабатываний).

Это распространенная практика.

На последний билд уже не ругается.

Я убрал из билда старую дельфийскую dll - была в примерах с рождения проекта. Будем надеяться, что это было причиной.

1 лайк

Сейчас стандартный модуль PABCSystem экспортирует только одну версию WriteAllLines: которая с массивом строк. Это затрудняет использование его в связки с ReadLines, которая возвращает IEnumerable (к результаты мы обычно применяем ряд методов последовательностей). Не хочется в конце писать ToArray (тем более, что это неэффективно), а импортировать руками System.IO.File для студентов лишний барьер.

Нельзя ли экспортировать из PABCSystem версию WriteAllLines с IEnumerable, а не только с массивом?

Там есть WriteLines - она - с последовательностями

Понятно, спасибо. Просто я обычно смотрю документацию по .NET, там нет writelines (вроде бы). Это немного сбивает с толку. Перегрузка не помешала бы, мне кажется.

Ещё вопрос: а не было ли бы разумно ввести метод high для array of T? Покороче чем length - 1 и реверанс в сторону фанатов Турбо Паскаля…

Ну, он вроде тоже есть:

begin
  var a := Arr(1,3,5);
  for var i := Low(a) to High(a) do
    Print(a[i]);
end.

Я писал про метод.