Доступно об АйТи: Почему Буш скрыл факты?
Я сейчас опишу две старых фишки программ Microsoft — одна ошибка, а другая просто старый мем.
Bush hid the facts
Как повторить: на Windows линейки NT, до XP включительно, написать в Блокноте «Bush hid the facts» и сохранить файл. При открытии получим китайские иероглифы — или тофу («квадратики»), если в системе нет китайского шрифта. Другое ПО (например, WordPad) показывает, что файл в полном порядке.
Мем появился при Буше-младшем, но ошибка появилась в 90-е, вскоре после правления Буша-старшего. И заключается она вот в чём.
Долгое время символ текста совпадал с байтом — минимальной единицей памяти и телекоммуникаций. Разных байтов всего 256, этого хватает на английский и местный язык. И даже если местный язык всего один (например, русский/украинский), появилось множество разных кодировок, призванных обойти важные символы той или иной базовой кодировки. Так, в кодировке DOS (=CP866) обходили псевдографику, в кодировке Windows (=CP1251) — типографские символы и управляющий знак «мягкий перенос», кодировку КОИ-8 подгоняли под старое почтовое ПО, убиравшее верхний бит. И появился термин крокозябры — текст не в той кодировке.
А уж сложный текст (например, по языкознанию), содержащий санскрит и древнерусский ять ѣ, так вообще не напишешь. И тогда в начале 90-х придумали Юникод, тогда ещё просто двухбайтовую кодировку — один символ кодируется двумя байтами. Windows NT изначально писалась юникодной, и там появилась функция IsTextUnicode, проверявшая статистикой, чем, скорее всего, является строка байтов — текстом в однобайтовой кодировке или текстом в Юникоде. Функция существует и поныне, однако Блокнот её давно не использует.
Статистика была проста: длина строки чётная, и чётные байты меняются значительно меньше, чем нечётные. Так что к ложным срабатываниям приводят строки «hhhh hhh hhh hhhhh» и «this app can break».
Хочу избежать службу в армии
Как повторить: на старых версиях Word с русским словарём производства «Информатик» включить проверку грамматики и написать: «Хочу избежать службу в армии». И смотреть, что она выведет.
Это, как говорят, не баг, это фича. В русском языке есть три метода сборки слов в словосочетания:
примыкание: зависимое слово неизменяемое и просто прицепляется к главному: бежать быстро, бежал быстро. Если в слове «бежал» некоторые учителя выделяют нулевое окончание, то в слове «быстро» окончания нет никакого, ведь наречия не изменяются.
управление: зависимое слово встаёт в конкретную форму: встретить маму, встретил маму. Встретил мамы — бессмыслица, а встретил без мамы — совсем другое словосочетание.
согласование: слова изменяются синхронно: чёрный хлеб, чёрного хлеба.
«Информатик» просто завёл базу главных слов, и для каждого указал, каким бывает зависимое. И резонно указал, что глагол «избежать» требует родительного падежа — «хочу избежать службы в армии».