Баг виндового блокнота.

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Баг виндового блокнота.

Сообщение Mikle » 31.05.2013 (Пт) 17:16

Не знаю, может и баян, проверил на двух компах с WinXP.
Создайте пустой текстовый документ, откройте блокнотом, впишите любую русскую букву и любую цифру, например "В0" (все комбинации не проверял). До этого никаких символов или переводов строки. После этого можно ещё вписать ЧЁТНОЕ количество любых знаков. Сохраните документ, закройте блокнот, снова откройте документ блокнотом... профит :)

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 31.05.2013 (Пт) 18:46

Mikle писал(а):Создайте пустой текстовый документ, откройте блокнотом, впишите любую русскую букву и любую цифру, например "В0"

А у меня нужного иероглифа нету ;)
Изображение

Mikle писал(а):После этого можно ещё вписать ЧЁТНОЕ количество любых знаков. Сохраните документ, закройте блокнот, снова откройте документ блокнотом...

С В0ЙцУкЕн не работает...

А вообще, прикольно, не знал :)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 31.05.2013 (Пт) 19:18

Да, такая комбинация работает, а вот цифрами добивать сколько ни пробовал - глючит.
Я из-за этого бага полчаса потерял - думал моя программа глючит, смотрел лог блокнотом :)

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 31.05.2013 (Пт) 21:05

Mikle писал(а):Я из-за этого бага полчаса потерял - думал моя программа глючит, смотрел лог блокнотом :)

У меня иногда VS output.txt показывает иероглифами, когда какой-нибудь баг посажу...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 31.05.2013 (Пт) 23:03

Почему баг-то? AI!
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 31.05.2013 (Пт) 23:06

Всё равно прикольно :)
А для работоспособности ИИ надо больше данных ;)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Баг виндового блокнота.

Сообщение ger_kar » 01.06.2013 (Сб) 11:32

Хакер писал(а):Почему баг-то? AI!
А разве нет? Чистой воды баг :).
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 01.06.2013 (Сб) 11:42

ger_kar писал(а):А разве нет? Чистой воды баг :).

Ну как можно говорить такие вещи?

Или надо опять давать ссылку на Joelя?
Ещё раз: нет такого понятия, как «просто строка». Абсолютно бесполезно иметь строку в памяти / в файле, не зная при этом, в какой она кодировке. Для txt-файлов нет метаданных, нет Content-Type, файловая система ничего не хранит.

Блокноту подсовывают набор байтов и предлагают отобразить его как текст, не предоставляя фактически никакой никакой информации о том, как надо интерпретировать кучку байтов и как понять, какие байты каким символам соответствуют (при том, что вариантов — тысяча).

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

Но вместо этого блокнот включает искусственный интеллект и пытается на основе статистических методов угадать, какая же кодировка использовалась тем, кто записал набор байтиков в файл. Точно так же, как делал IE, если не знал кодировку веб-страницы.

То, что блокнот не может правильно угадать кодировку для экзотических мыссмысленных комбинаций — что в этом такого?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Баг виндового блокнота.

Сообщение ger_kar » 01.06.2013 (Сб) 11:53

Хакер писал(а):Или надо опять давать ссылку на Joelя?
Не надо. Читали...

Хакер писал(а):То, что блокнот не может правильно угадать кодировку для экзотических мыссмысленных комбинаций — что в этом такого?
А как тогда его угадывают и правильно отображают текст Notepad++, AkelPad, и скорее всего другие редакторы? Я проверил на двух, отображают все корректно в отличии от блокнота с большим интеллектом.
Бороться и искать, найти и перепрятать

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 01.06.2013 (Сб) 12:25

Хакер писал(а):Блокноту подсовывают набор байтов и предлагают отобразить его как текст, не предоставляя фактически никакой никакой информации о том, как надо интерпретировать кучку байтов

Я ничего не подсовываю - я набираю В САМОМ БЛОКНОТЕ текст "В0", сохраняю средствами блокнота, а при открытии имею ЭТО. Так что баг.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 01.06.2013 (Сб) 12:36

Хакер писал(а):Но вместо этого блокнот включает искусственный интеллект и пытается на основе статистических методов угадать, какая же кодировка использовалась тем, кто записал набор байтиков в файл.

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

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Баг виндового блокнота.

Сообщение ger_kar » 01.06.2013 (Сб) 12:58

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Баг виндового блокнота.

Сообщение iGrok » 01.06.2013 (Сб) 14:18

ger_kar писал(а):А как тогда его угадывают и правильно отображают текст Notepad++, AkelPad, и скорее всего другие редакторы?

В данном случае достаточно ничего не угадывать, а сразу отображать в "стандартной" win-1251, чтобы получилось правильно.
А вот сохрани им что-нибудь в unicode / utf-8 (обязательно без BOM), и попробуй открыть. Что скажут?

Я, честно говоря, не проверял. Возможно покажут всё правильно, и это будет значить, что у них более сложный ИИ. Но я гарантирую, что можно найти такую комбинацию символов, на которой сфэйлит и их ИИ, и тогда ты тоже будешь кричать, что это баг? :)

Mikle писал(а):Я ничего не подсовываю - я набираю В САМОМ БЛОКНОТЕ текст "В0", сохраняю средствами блокнота, а при открытии имею ЭТО. Так что баг.

Какая разница-то? Блокнот не сохраняет метаданных. То, что файл создан в нём самом, для него ничего не значит и не меняет.

Я так понимаю, блокнот сначала пытается открыть файл, как юникодный (потому что для системы эта кодировка считается "стандартной"). Возможно, при отсутствии BOM он проверяет длину файла, и тогда легко показать, что количество ошибок не превышает 50%. :)
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 01.06.2013 (Сб) 15:15

iGrok писал(а):Какая разница-то?

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

<<< 3000
Последний раз редактировалось Mikle 02.06.2013 (Вс) 8:34, всего редактировалось 1 раз.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Баг виндового блокнота.

Сообщение iGrok » 01.06.2013 (Сб) 15:48

Mikle писал(а):Считаю вполне законной претензию, чтобы программа корректно открывала хотя бы то, что сама сохраняет. При сохранении нужно предвидеть, что придётся открывать.

Только не в случае голого текста. Нужно, чтобы корректно открывалось то, что сохранено - используй текстовые процессоры. Они для этого и предназначены.
А этот формат никаких дополнительных пометок не предусматривает (кроме BOM, но в случае 1251 они не помогут, да и в принципе нельзя без предупреждения писать BOM в текстовый файл).
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 0:47

Mikle писал(а):Считаю вполне законной претензию, чтобы программа корректно открывала хотя бы то, что сама сохраняет. При сохранении нужно предвидеть, что придётся открывать.


А то, что нельзя открыть файл, созданный год назад, и нажать там Ctrl+Z — тоже баг?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 8:33

Хакер писал(а):А то, что нельзя открыть файл, созданный год назад, и нажать там Ctrl+Z — тоже баг?

Нажать можно, не произойдёт ничего, хоть даже файл сохранён не год, а минуту назад. Не вижу в этом ничего неправильного. Ctrl+Z отменяет последнее изменение В ТЕКУЩЕМ СЕАНСЕ.
А вот, если имеется ИИ, он должен отрабатывать не только при загрузке, но и при сохранении, предполагая, что придётся открывать этот файл, и результат должен совпасть.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 8:34

Mikle писал(а):А вот, если имеется ИИ, он должен отрабатывать не только при загрузке, но и при сохранении, предполагая, что придётся открывать этот файл, и результат должен совпасть.

И что он должен сделать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 9:06

Хакер писал(а):И что он должен сделать?

К примеру, сохранить файл так (zip потому, что txt не прикрепляется):
Вложения
NoBug.zip
(122 байт) Скачиваний: 125

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 9:09

Mikle писал(а):К примеру, сохранить файл так

А почему он должен это делать, если при сохрании ты сам выбираешь кодировку? То есть он должен плюнуть на твой выбор и сохранить как сам считает нужным?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 10:07

Я не делал выбор, если бы он мне это предложил - вопросов бы не было. Причём желательно при сохранении предупреждать, что в выбранном формате дальнейшее открытие будет некорректным.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 10:17

Как не предложил? Может быть ты просто невнимателен и настолько привык к картинке, что не замечаешь очевидного?

В диалоге сохранения внизу под фильтром — дропдаун с кодировкой. Хочешь сказать, что у тебя нет такого дропдауна?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 11:02

Я не пользовался "Меню/Сохранить как...". А если даже им воспользоваться - по умолчанию получаю формат, который блокнот сам же не распознаёт, и мало того, что без предупреждения, такие вещи вообще правильнее называть "Экспорт" а не "Сохранить".

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 11:18

Mikle писал(а):не пользовался "Меню/Сохранить как...".

А чем же? Этот пункт есть в «Сохранить» и в «Сохранить как».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 12:47

Я создал новый текстовый документ (шаблон) и открыл его блокнотом (по умолчанию). В меню "Сохранить" ничего нет, сразу сохраняет.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Баг виндового блокнота.

Сообщение Хакер » 02.06.2013 (Вс) 12:50

Блокнот написан из расчёта на то, что если символы, использованные в тексте, есть в текущей кодировке для неюникодных приложений, то файл сохраняется именно в ней. В противном случае блокнот всегда спрашивает «файл содержит символы юникода, сохранить ли его в юникоде»?

Причина, по которой блокнот так делает, в том, что в мире ещё миллион программ, которые не переваривают юникод. Особенно в штатах. Там частных разработчиков (разработчиков корпоративного софта) вообще часто не волнует никакая проблема с юникодами. Им не нужен юникод.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 02.06.2013 (Вс) 13:04

Вот и нечего пользоваться блокнотом :)
Не, а чего блокнотом-то пользоваться, есть же NPP?

Хакер писал(а):Блокнот написан из расчёта на то, что если символы, использованные в тексте, есть в текущей кодировке для неюникодных приложений, то файл сохраняется именно в ней.

Вот именно поэтому, при отсутствии других указаний и явной недостаточности данных для умного определения кодировки, надо в ней и открывать...

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Баг виндового блокнота.

Сообщение Mikle » 02.06.2013 (Вс) 13:17

Хакер писал(а):Блокнот написан из расчёта на то, что если символы, использованные в тексте, есть в текущей кодировке для неюникодных приложений, то файл сохраняется именно в ней.

Какие из двух символов ("В" и "0") требуют юникод?
Почему три символа ("В" с двумя нулями) открываются уже корректно? Впрочем, сам понимаю, нечётное число байт не лезет в юникод.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 02.06.2013 (Вс) 13:38

Mikle писал(а):Впрочем, сам понимаю, нечётное число байт не лезет в юникод.

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Баг виндового блокнота.

Сообщение iGrok » 02.06.2013 (Вс) 13:45

Qwertiy писал(а):При открытии этого файла получил синий экран, а заодно угробил предустановленный антивирус и еще кучу всего.
Не думаю, что это связанные вещи. :)

Особенно с учётом вот этого:
Qwertiy писал(а):Кстати, после восстановления системы антивирус был одной из нескольких программ, которые так и не заработали...
label:
cli
jmp label

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList