Mercury13

Пикабушник
Дата рождения: 01 января 1981
поставил 2248 плюсов и 437 минусов
отредактировал 219 постов
проголосовал за 257 редактирований
Награды:
Высокий разум За ловкость рук Летняя коллекция С Днем рождения Пикабу! редактирование тегов в 100 и более постах С Днем рождения, Пикабу!5 лет на Пикабу
19К рейтинг 96 подписчиков 73 подписки 46 постов 19 в горячем

Энциклопедия символов «Юникодия»: отчёт весны 2024

Напоминаю: я пишу программу под Windows — энциклопедию символов и самую лучшую замену стандартной Таблице символов. Качать тут. Выглядит примерно так.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Вот она, моя прога

И первое, что видно…

Любимые символы

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Новая вкладка

Какой-то фанат накидал мне целую панамку функциональности, и один его пункт я сделал, ибо нет технических препятствий и сумел просчитать все интерфейсные обоснования. (Скажем, масштабирование я не сделал потому, что функцию попробуй обнаружь в интерфейсе, а если случайно изменил масштаб, непонятно, как вернуть.)

Можно создать список каких хочешь символов — например, часто используемых типографских. Или просто закладки на полноценные блоки: нажатие на синюю стрелочку около «U+1FAF6» переходит на вкладку «Блоки».

Подтягиваются шрифты

Руки Noto

Библиотека Noto к 15-му Юникоду привезла новые руки, вы уже их видели на заглавной странице — сделанные двумя цветами и как бы снятые широкоугольным объективом. Я их откладывал как из-за трудоёмкости, так и из-за сомнений: а достаточно контрастности? Оказалось, Юникодия приняла новые руки без вопросов, а BitBucket стал хуже — ну не смотрятся на размере пикселей в 15. А Slack вообще отказался принимать эти руки.

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

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Разница между «было» и «стало», усиленная раз в 20

Видите, у вампирши яркие брови и тусклое лицо? Это значит, были какие-то ошибки в перекраске.

Изначально перекраска ставила целью экономить механическую работу, а не байты архива. Некоторые SVG-эмодзики глючили, я глюки исправлял — а чтобы исправить один раз, а не шесть, пять цветов кожи генерировались. Теперь, когда можно сравнивать «было/стало», можно и поэкономить, и десятка полтора человечков перекрашиваются — для пользователя не изменилось ни пикселя.

Египетские иероглифы

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Был шимпанзе, стал гамадрил

В 2009 году, когда кодировали иероглифы, их брали из трудов Алана Гардинера — историчные, но корявые. В 2016 их заменили на профессиональный шрифт, возможно, Hieroglyphica, слегка погрешив против истины. С 2021 истину стали восстанавливать.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Лишь две строчки из большого списка

Мы работали вдвоём с немецким египтологом — я рисовал, он проверял. Когда он без предупреждения пропал, я спрашивал: а что с ним? Оказалось, уехал «в поля». Так и не сказал мне, насколько опасно/безопасно было в Египте.

Примерно 60% изменений — это люди. А именно: у действующего фараона прямая борода, у бога и бывшего фараона — длинным крючком (за исключением Пта, у него фараонская), у египтянина — короткая, у сирийца — острая. Кроме того, коровы, обезьяны, лодки и многое другое — около 70 иероглифов.

Ланна

Северотайская письменность, сейчас в опасности, одна из красивейших письменностей мира.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Северотайская Библия. Тайское письмо и ланна

В 1930-е ланна была заменена тайским письмом, и используется больше меньшинствами (тай-кхынами, лы), до которых националисты не дотянулись. Так что многие надписи на северотайском пишут и тайским письмом, и ланной.

Меня просто давила жаба: такая красота — и шрифтом без засечек? После долгих поисков нашёл шрифт, который корректно рисует хотя бы простейшие надписи из Википедии.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Ланна: было/стало

Символы каны для записи иностранных языков

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Конкретно эти придуманы японцами незадолго до 2МВ

Движок GlyphWiki не очень подходит для рисования таких символов, и я плевался, когда вычищал. Нашёлся человек, нарисовавший их вручную.

Прочая функциональность

Предупреждение о других формах эмодзи. У некоторых эмодзи бывают другие формы — устаревшие, некорректные и просто другие. Современный флаг Афганистана, белый с шахáдой (девизом ислама), никто не принимает и рисует старый 2021 года. Пиньята (начинённая конфетами игрушка) бывает в форме звезды и в форме животного. Автобусную остановку рисует каждый свою местную. Микроб — рисуют бактерии, амёбы и даже КОВИД.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Вот, например, флаг Мартиники

Вычищаю ложь. Я, конечно, стараюсь проверять, что пишу, но иногда не получается. Например: есть аж два «эльбасанских письма» для албанского: одно было известно с самого начала, ибо его изобретатель, «учитель Тодри», всю жизнь его пропагандировал, пока не убили (будет этой осенью под именем «Todhri»). Второе — единственный образец изъяли в 1945 у расстрелянного коллаборациониста, коллекционера и филолога (есть с 2014 под именем «Elbasan»).

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Эльбасанское Евангелие / Три молитвы шрифтом Тодри

Или не очень верно написал, что такое ночная азбука Барбье: она использует матрицу 2×6, но код там не двоичный, а сколько точек в левой колонке и сколько в правой — таким образом получается 6·6=36 букв.

Энциклопедия символов «Юникодия»: отчёт весны 2024 Unicode, Таблица, Шрифт, Письменность, Программа, Видео, YouTube, Длиннопост

Шарль Барбье, зрячий военный. И Луи Брайль, слепой учитель.

Последнее — про азбуку Брайля отлично рассказала Юлия Большакова, так что закончим её рассказом.

Спасибо за внимание!

Показать полностью 11 1

Ответ на пост «Конец света»

Разрешите подушнить на тему старого конца света.

БОР № 415713

xxx: Во всём мире ждут конца света 21.12.12. И лишь в России ждут ещё 03.01.13 старый конец света!

Есть старая задача из советских книг: почему старая Октябрьская революция (25 октября) раньше новой (7 ноября), а старый Новый год (14 января) позже обычного (1 января)?

Новый год — это дата, первое января. Старая дата — юлианская, новая — григорианская: 1 янв ю.к. = 14 янв г.к (старая) > 1 янв г.к. (новая). Григорианский календарь выкинул 13 високосных дней, и новый Новый год физически раньше старого.

Октябрьская революция — это событие, которое не бывает «старым» и «новым»: 25 окт ю.к. = 7 ноя г.к., один и тот же день по разным календарям! И г.к. не позже, у него просто цифра больше. А «старая революция» как кое-кто её празднует — это 25 окт г.к. Заметили передёргивание: дата 25 окт ю.к. названа новой революцией, 25 окт г.к. — старой?

И конец света — событие, так что «старый» конец света должен быть 8 декабря. По юлианскому календарю, естественно.

Примерно то же самое с часовыми поясами. В Москве UTC+4 (на момент написания), на Урале — UTC+6. Жители Урала увидят парад Победы (событие) позже по местному времени: 9:00 UTC+4 = 11:00 UTC+6. А если зафиксировать местное время — например, вечерние новости в 21:00 — получаем, что жители Урала увидят новости на два часа раньше по абсолютной шкале: 21:00 UTC+6 = 19:00 UTC+4 (по Уралу) < 21:00 UTC+4 (по Москве).

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

Ответ на пост «Он вышел на тропу войны»

Не очень верно сделан комикс. Правильно так.

Ответ на пост «Он вышел на тропу войны» Перевод, Юмор, IT юмор, Диспетчер задач, Компьютер, Текст, Ответ на пост, Картинка с текстом

Этих двух товарищей забыли.

Детский вопрос: Почему километры на часы делят, а киловатты на часы умножают?

Детский вопрос: Почему километры на часы делят, а киловатты на часы умножают? Bash im, Дети, Киловатт, Километр, Единицы измерения, Занимательно

Фраза с нового башорга

Для лиги Лени: час — это 3600 секунд, из-за чего единицу «скорости» приходится брать из СИ, а единицу «расстояния» — внесистемной. Ну или наоборот.

Откуда у нас такой час?

Древний Вавилон имел систему счисления с двойным основанием: 6 и 10.

𒐕=1, 𒐖=2, … 𒐝=9

𒌋=10, 𒌋𒐕=11 … 𒐐𒐝=59

𒐕=60, 𒐕 𒐕=61 … (Ноль 𒑊 писался крайне непоследовательно и не известно ни одной надписи, где он был в конце числа. Как тогда писали 60, чтобы отличить от единицы — не знаю, некоторые источники говорят о другом клине, также в Юникоде есть символ 𒐑.)

Именно от вавилонян к нам пришла единица времени 1 час = 60 минут = 3600 секунд. Не слишком удобная цифра.

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

Чем километры отличаются от киловатт

Для расстояния системная единица — метр, для скорости — метр в секунду.

Рассчитывать скорость машины по секундомеру — между столбами 50 м, машина проехала за 6 секунд, скорость 50/6 = 8,3 м/с, то есть 30 км/ч — приходится разве что милиционерам до появления радаров. А вот расстояния приходится считать разными методами: по карте, мерным тросом, тригонометрией… Потому логично взять системное расстояние и внесистемную скорость.

Для работы («расстояния») системная единица — джоуль, для мощности («скорости») — ватт = джоуль/с. Казалось бы, всё аналогично, но нет.

Энергия-то электрическая, и ватт=вольт·ампер. То есть и расчётами, и замерами приходится высчитывать мощность прибора — а уж через неё стоимость эксплуатации. Потому системной удобнее сделать «скорость», а внесистемным — «расстояние». А джоули сгоревшего топлива преобразуются в ватт-часы электрической энергии где-то далеко на электростанции.

Для продажи другой энергии, энергии нагретой воды — то есть в отоплении — используют калорию (=теплоёмкость грамма воды). И тоже понятно, почему: измеряют расход воды и разницу температур на входе и выходе. Помножив одно на другое, получаем калории.

Показать полностью

Порядок операций и мем 6:2(1+2)

Порядок операций и мем 6:2(1+2) Математический юмор, Математика просто, Мемы, Математический парадокс, Видео, YouTube, Длиннопост

Мем врёт: порядок операций не был определён в 1912, просто кодифицирован в одном из западных учебников.

Сначала попробую рассказать, откуда взялся порядок операций. Вот видео, перескажу его вкратце.

Итак, пересказ видео

Порядок операций по умолчанию — не математическая истина, а договорённость.

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

((2·(x²)) + (3·x)) − 5

Потому хотелось бы уменьшить количество скобок, отсюда порядок операций «если иное не указано».

Но давайте сначала сделаем две ремарки.

  1. В математике плюс и умножение переместительны и сочетательны (коммутативны и ассоциативны, как говорят в вузе) — a+b=b+a, a+(b+c)=(a+b)+c. На компьютере формально нет сочетательности, но глюки значимы очень редко. То есть не важно, в каком порядке суммировать/множить.

  2. Вычитание — это нечто близкое к сложению: a−b = a+(−b). А деление — нечто близкое к умножению: a/b = a·(b⁻¹). Потому то и другое будет иметь одинаковый приоритет.

Из этих ремарок автоматически отпадает одна скобка: (2·(x²)) + (3·x) − 5.

А почему остальные скобки выпали до 2·x² + 3·x − 5 — есть очень много аргументов.

Аргумент точности и гипероператоров

Степень обычно приводит к большим цифрам. Умножение — к меньшим. Сложение — к совсем маленьким. Если нужно очень приближённо вычислить что-то, сначала получают самые большие члены (например, степенны́е), а потом всё ближе и ближе подходят к ответу, умножая и прибавляя, пока точности не будет хватать. И математики это обобщили в гипероператоры.

Гипероператор нулевого порядка — это следующее число x′ = x+1.

Гипероператор первого порядка — это сложение a+b = a″…″ (много штрихов) = a+1+…+1.

Гипероператор второго порядка — это умножение a·b = a+a+…+a.

Гипероператор третьего порядка — это степень aᵇ = a·a·…·a.

А гипероператор четвёртого порядка называется тетрация и приводит к вообще астрономическим числам.

Аргумент анализа размерностей

Считать по формулам обычно нужно потому, что эти числа имеют какое-то отношение к реальности — то есть тащат за собой единицы измерения. И запрещается складывать самолёты с часами, можно только самолёты с самолётами и часы с часами. А множить самолёты на часы не возбраняется, и получаются самолёто-часы — часы авиационной работы.

Анализ размерностей заключается вот в чём: смотрим, в каких единицах каждый член, и всё это должно совпадать. Вот несложная формула из физики: s = vt + at²/2. Считаем: s — метры. vt — (м/с)·с — тоже метры. И так далее.

Мне, Mercury13, приходилось делать несложную мобильную гонку. Да, она несложная, но движок работал на единицах СИ, и подобным анализом я исправлял очень много ошибок.

Аргумент алгебры

Сложение и умножение обладают также распределительностью (дистрибутивностью) — a·(b+c) = a·b + a·c. Порядок «сначала умножение, потом сложение» позволяет легче видеть в выражениях подобные шаблоны.

Аргумент многочленов

Многочлены вроде ax²+bx+c играют большую роль во многих отраслях математики, и хотелось бы их держать без скобок.

…В общем, на Западе всё это объясняют аббревиатурой PEMDAS.

  • Parentheses — скобки

  • Exponent — возведение в степень

  • Multiplication/Division — умножение/деление

  • Addition/Subtraction — сложение/вычитание

Но откуда тогда взялся мем, если порядок типа-определённый?

А взялся он из одного разночтения и трёх дополнительных факторов. Напоминаю, порядок операций — не математическая истина, а договорённость, призванная уменьшить количество скобок.

  • Первое и главное. Имеет ли неявное умножение ab (то есть умножение без явно прописанного знака «умножить») приоритет перед делением?

  • В профессиональной математике — и даже в старших классах — крайне редко делят двоеточием a:b. Чаще используется дробная черта, явно показывающая, что на что делить. В некоторых договорённостях эти знаки неравноценны, но забьём.

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

  • Как видите, есть разночтения, и комп их усилил. Отбивка пробелами также призвана их закрыть: операции, отбитые пробелами, считаются менее приоритетными, чем записанные слитно.

О калькуляторах и зарубежных учебниках будет рассказ в этом видео. В общем, есть калькуляторы, у которых неявное умножение имеет более высокий приоритет, есть те, у которых наравне с остальным. На одни калькуляторы ругались учителя, на другие — профессионалы.

А я попробую рассказать про наши родные источники. В любом случае в наших учебниках разночтений типа a/b(c+d) не будет: вылезут из кожи, но сверстают настоящую дробь. В профессиональной литературе такие места единичны, и пролистав доступные книги, получаю такое.

  • Бейко ИВ и др. Методы и алгоритмы решения задач оптимизации. К: 1983. Набор металлический. С.149 первая формула (что-то там)/(γ+1)||g(yᵏ)|| — неявное умножение раньше дробной черты, с учётом ремарок VI на с.147 и (ii) на с.148. Также нашёл на с.324.

  • Каханер Д и др. Численные методы и программное обеспечение. М: 1998. Набор неизвестной издательской системой (Word?). Вытянутых в строчку формул очень мало, но с. 201 третья строка — 1/√π ∫ в интеграле ошибок явно говорит, что дробная черта раньше неявного умножения. В другом месте на с.328 написали (что-то там)/(2L).

А теперь различные докомпьютерные источники по этому правилу.

  • Репьёв ВВ. Методика преподавания алгебры в восьмилетней школе. М: 1967. — с.81.

Порядок операций и мем 6:2(1+2) Математический юмор, Математика просто, Мемы, Математический парадокс, Видео, YouTube, Длиннопост
  • Шустеф ФМ. Методика преподавания алгебры. Минск: 1967. — с.43.

Порядок операций и мем 6:2(1+2) Математический юмор, Математика просто, Мемы, Математический парадокс, Видео, YouTube, Длиннопост

Уже видно, что с этим разногласие даже у методистов.

А теперь разрешите процитировать одного комментатора из-за бугра: «В этом примере смешаны запись из начальной школы и институтская, причём бессмысленно. Те, кто помнит арифметику, ответят 9. Те, кто больше помнят алгебру, вероятнее, ответят 1».

Порядок операций и мем 6:2(1+2) Математический юмор, Математика просто, Мемы, Математический парадокс, Видео, YouTube, Длиннопост

Кто в курсе, почему я добавил эту картинку?

Показать полностью 3 2

Ответ на пост «Завелась крыса под капотом»

Крыса

Рассказал знакомый автомобилист.

Несколько лет назад у него пошла вонь из-под капота. Пошёл на СТО, там откручивают поддон — и оттуда падает жирная крыса, поджарившаяся и полуразложившаяся. Механик был впечатлительный, сразу грохнулся. Подошёл другой и довёл дело до конца.

На днях пошёл он на полную диагностику машины. В числе прочего, заказал вымыть двигатель. Оказалось, что крысы под двигателем устроили гнездо, и оттуда выгребли кучу костей и мусора. Хорошо ещё, провода не съели. Механик:

— Это ещё что. Подъезжал как-то человек — у него вытащили здоровенную крысу.

— На том подъёмнике?

— Да.

— Это был я.

Одним глазком в Юникод 16.0

Юникод 15.1 пока не поддерживается никем и никак. Но к 16.0 уже готовятся: 1 ноября приняли первые семь эмодзиков. Окончательный выпуск будет осенью 2024.

Эмодзи

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Вот она, великолепная семёрка

Колобок с мешками под глазами — усталый, измученный, похмелье, бессонница

Отпечаток пальца — биометрия, место преступления, мелочи, опознание

Корнеплод — свёкла, дайкон, редька, борщ, репетиция, дать в репу

Голое дерево — осень, зима, засуха, экология, депрессия

Арфа — лира, кифара, цитра, классическое исполнительское искусство, Ирландия

Лопата — откопать, подкопать, закопать (прямо или фигурально), вкалывать

Клякса — грязь, пятно, праздник Холи, краска, соус, пейнтбол

Автоматически вместе с кодом государства появился Сарк, островок в Ла-Манше, владение Великобритании.

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

600 человек, и уже код государства CQ

Кириллица

Добавлена одна буква, появившаяся в 2013 году,— ТЬ из языка ханты (уральская семья, 9 тыс. на 2010). Очевидная лигатура из Т и мягкого знака.

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Типа их алфавит

Автор заявки — пикабушник! Мне казалось, что это единственная действующая буква из 16-го Юникода, но нет: есть ещё заглавная буква ɤ, придуманная в 2014 для языка восточный дан (Кот-д’Ивуар, 650 тыс., неписьменный). И целый алфавит гарай.

Около 700 символов со старых компьютеров

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Вот лишь немногие из этих символов

Amstrad CPC, Apple II, Mattel Aquarius и множество других. Полагается, что значимые старые платформы исчерпаны и больше символов со старых компьютеров не будет. Вот, как пример, карты ханафуда на одном из японских терминалов.

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

В этом увидят красоту разве что японцы

Вы только посмотрите на их изобретательность: мордашки, кресты, машинки, диоды, резисторы — и из всего этого нарисовали карты.

Алфавит Тодри

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Алфавит Тодри. Авторское Послание к евреям

Тип: алфавит, слева направо, без регистра, экспериментальный

Язык: албанский (на то время — арабица)

Существовал: середина XVIII века…≈1800

Албанский язык, очень далёкий родственник современного греческого, под властью турок несколько веков использовал арабскую вязь. И просвещённые умы около 1800 придумывали другие алфавиты — частично для конспирации от турок, частично для культурной автономии. Уже закодированы виткутьский алфавит (≈1850) и алфавит Эльбасанского Евангелия (до 1800). Вот перед нами третий образчик, также использовавшийся в районе города Эльбасана. Потому алфавит также нередко зовётся «эльбасанским», и чтобы одно не путать с другим, назвали в честь автора — Теодора Хаджифилиппа по прозвищу «учитель Тодри».

Гарай

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Гарай. Авторский букварь

Тип: алфавит, справа налево, с заглавными, экспериментальный

Языки: волоф (6,9 млн на 2017, латиница, арабица, адлам); мандинка (2,1 млн ≈2020, латиница, арабица, нко); оба — Сенегал, нигеро-конголезская семья

Существовал: с 1961

Что такое 1961? Это типа освобождение Африки, и некто Ассане Файе из Сенегала придумал вот такой алфавит. В любом случае в конкуренции победила латиница и количество грамотных в гарае в наши дни исчисляется сотнями, но письменность не умерла и изучается.

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

На ум приходит знаменитая шутка из комикса xkcd

Заглавная буква снабжена большим крючком. В конце слова часто добавляют длинный хвост, что, впрочем, не обязательно и будет поддерживаться шрифтами лишь когда туда добавится Тьюринг-полное программирование. Есть и другие места, где разработчики шрифтов ждут настоящего программирования: сложные стили арабского, египетские иероглифы, европейские ноты, стенография Дюплойе.

Тигалари (=западная грантха, тулу-малая́лам, грантха-малая́лам)

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Тигалари. Книга санскритом на пальмовом листе

Тип: брахмийская абугида (особый вид слоговой письменности родом из Индии), слева направо, религиозная

Языки: санскрит (индоевропейская семья), кáннада, малая́лам, тулу (все три — Западная Индия, дравидийская семья). На последнем чаще пишут кáннадой и даже на переписях относят к говорящим на кáннаде.

Существовала: IX…XVII век, крайне редко поныне

Письменность сестринская с уважаемой письменностью малая́лам, и крайне мало используется в индуизме.

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

  • क [ка] = ка

  • क् [к] = ка + вирама

  • क्ष [кша] = ка + вирама + ша

  • क्षी [кши:] = ка + вирама + ша + ии

Сделано это, чтобы задействовать поменьше клавиш на стандартный стиль — а если нужен другой, есть спецсимволы, которые можно хоть через AltGr. Сложно, но не все в Индии «индусы», есть и те, кто запрограммирует как надо.

В исторических письменностях разделяют видимую вираму (убирает гласную A) и виртуальную вираму (=conjoiner, склеивает согласные). Это упрощает создание шрифтов, перепечатывание документов в авторской орфографии, прочтение авторской орфографии на неполноценном шрифте.

Одним глазком в Юникод 16.0 Unicode, Письменность, Эмодзи, Длиннопост

Conjoiner — спецсимвол, склеивает согласные. Virama — видимая, убирает гласную

Цифры берут кто на какие горазд, предлагается унифицировать с кáннадой.

Но это не всё!

Юникод 16.0 — это будет мега-обновление! (В 2022 Консорциум Юникода потерял двух ключевых людей и вынужден был сделать небольшой выпуск.) С новой пачкой эмодзиков будут:

  • сунвар (Непал, алфавит без регистра, 1942)

  • гурунг или кхема (Непал, брахмийская абугида, около 1972)

  • кират-рай (Индия, брахмийская абугида, около 1920)

  • ол-онал (Индия, алфавит без регистра, 1992)

Я пишу программу «Юникодия» — энциклопедию символов Юникода. Качать тут.

Показать полностью 9

Доступно об АйТи: Откуда взялись Meltdown и Spectre

Найти уязвимость в процессоре — это сильно. Но именно это случилось в середине 2017 года — появилась уязвимость Meltdown, теоретически открывающая доступ к системной памяти. Позже появилась и Spectre, более сложная, но теоретически позволяющая забраться в память другой программы. Поскольку теоретически уязвимы все, шума было много, но нет данных о реальном использовании этих уязвимостей.

Доступно об АйТи: Откуда взялись Meltdown и Spectre Meltdown, Процессор, IT, Spectre, Уязвимость, Длиннопост

Эмблемы уязвимостей Meltdown и Spectre

Извлечением разведывательных данных из открытых каналов шпионы занимались давно. С 2022 очень многие умеют сопоставлять снимки местности с гуглокартами (я не умею). И потому считается, что любое военное фото и видео лучше выкладывать несколько дней спустя, когда извлечённая информация будет неактуальной. И именно это — утечка данных через открытый канал — случилось почти со всеми x86. К Meltdown были уязвимы все Intel начиная с Core, к Spectre — вообще все.

Вкратце о виртуальной памяти. Появилась на процессоре 80386 (1985), даёт каждой программе подобие выделенного процессора с 4 гигабайтами памяти (если процессор 32-битный). Таблицы преобразования из виртуальных адресов памяти (доступных программисту) в физические (какая ячейка ОЗУ) находятся всё в том же медленном ОЗУ.

Доступно об АйТи: Откуда взялись Meltdown и Spectre Meltdown, Процессор, IT, Spectre, Уязвимость, Длиннопост

Приблизительное устройство виртуальной памяти

Программе иногда приходится обращаться к функциям ОС — например, чтобы получить имя текущего пользователя. Эта функция обязана обращаться и к системной памяти (там находится имя), и к пользовательской (чтобы скопировать имя туда). Решено это так: часть системной памяти внесена в виртуальную память программы, но доступ к ней разрешён только из системных функций. Именно эту память, которую «видит око, да зуб неймёт», читает Meltdown. Отсюда название — эта уязвимость «плавит» границы памяти.

Закон дырявых абстракций

Чтобы прочитать эту память, нужны определённые технологии процессора.

  • Чтобы поменьше обращаться к медленному ОЗУ, у процессора есть быстрая маленькая кэш-память. У современных процессоров есть три уровня кэш-памяти, нас интересует кэш 1-го уровня (ближайший к процессору, несколько килобайт объёмом, работает не с физическими адресами памяти, а с виртуальными).

  • Процессор умеет выполнять операции наперёд. Но в любой программе есть команды ветвления — скажем, «если D<0, то уравнение решения не имеет, иначе корни такие-то». Все современные x86 ещё до того, как вычислят D, пробуют пройти по одной из веток (а то и по обеим).

  • При этом процессор не знает наперёд, имеет ли он право выполнять эту операцию: для этого надо заглядывать в таблицы преобразования, а они если не в оперативной памяти, то в особом кэше преобразования адресов, который сидит между 1-м и 2-м уровнями. Так что просто выполняет — а потом уже разбирает, имеет ли он право это делать.

  • Для высокоточного отсчёта времени (для мультимедиа, игр и прочего) в процессоре есть счётчик тактов.

Джоэль Спольский придумал так называемый «закон дырявых абстракций». Звучит он примерно так:

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

Вот пример из автомобилей: чтобы машина с ДВС умела стоять, а также ездить на разных скоростях в разных режимах мотора, к двигателю приделана коробка передач. Переключать её — дело неблагодарное, и в околовоенные годы придумали автоматическую коробку. Удобно — нажал-поехал — но то, что за всем этим старые добрые мотор и коробка, вылезает сплошь и рядом.

Дисклеймер: я о традиционной коробке типа «гидроавтомат» без электронных помощников. Да простят меня обладатели вариаторов и роботов.

  • ДВС не умеет стоять: коленвал остановился — двигатель заглох. А поскольку в автомате вместо сцепления две турбины, автоматическая машина всегда ползёт, если недостаточно сильно давить на тормоз.

  • Чем выше оказалась случайно стрелка тахометра в момент T, тем лучше тянет машина, если резко нажать газ.

  • А если нужно разогнаться максимально резко — дай коробке время переключиться, чтобы тахометр ушёл в 4000+ об/мин.

  • Ну и целая куча тонкостей в сложных и экстремальных режимах езды.

Как работает Meltdown

Есть очень длинный массив, больше, чем кэш-память. Скажем, на 1001 позицию — от 0 до 1000. Программа будет такая.

Сбросить кэш-память

Если некое условие (гарантированно не выполняющееся)

……Считать число из запретного адреса

……Извлечь из числа один бит (то есть 0 или 1)

……Загрузить из массива элемент № (бит·1000) — то есть № 0 или № 1000

Иначе

……Загрузить из массива элемент № 0, измерить время доступа

……Загрузить из массива элемент № 1000, измерить время доступа

Условие гарантированно не выполняется, но надо заставить процессор пройти наперёд именно по первой ветке — и он выполняет её наперёд, не зная, что адрес запретный. Заодно перекидывая элемент № 0 или № 1000 в кэш. Массив длинный, оба сразу в кэш не попадут.

Если из запретного адреса считан 0, доступ к элементу № 0 будет быстрым (он в кэше), а к элементу № 1000 — медленный. И наоборот.

И так бит за битом читают запретную память.

Spectre

Сбросить кэш-память

Если некое условие (гарантированно не выполняющееся, с доступом к ОЗУ)

……Считать число из адреса, совпадающего с виртуальным адресом жертвы

……Извлечь из числа один бит (то есть 0 или 1)

……Загрузить из массива элемент № (бит·1000) — то есть № 0 или № 1000

Иначе

……Загрузить из массива элемент № 0, измерить время доступа

……Загрузить из массива элемент № 1000, измерить время доступа

Самый известный вариант Spectre очень похож на Meltdown, и главная разница такова: а) мы хотим получить доступ к памяти другой (атакуемой) программы, и мы знаем желаемый адрес в её виртуальной памяти; б) атакуемая программа постоянно имеет дело с этим адресом — и потому секретный байт в кэше (напоминаю, кэш 1-го уровня имеет дело с виртуальными адресами); в) «некое условие» вычисляется по формулам, требующим доступа к ОЗУ; г) запретный адрес тоже вычисляется по формулам, но более простым и быстрым.

Следите за руками. Не видя способа быстро рассчитать условие, процессор начинает наперёд крутить ветку «то». Вычисляет адрес, считывает из него число, а пока оно ползёт из ОЗУ, пробует прокрутить следующие шаги с тем числом, что завалялось в кэше . Число из ОЗУ не успеет прийти («если некое условие» будет вычислено раньше), но эти шаги, опять-таки, приведут к тому, что либо № 0, либо № 1000 будет закэширован и доступ к одному будет быстрый, а к другому — нет.

Название Spectre («призрак») происходит из-за крайней сложности ошибки (уязвимы почти все x86, программно не закрывается, и ожидалось, что она ещё некоторое время будет преследовать) и технологии «выполнение наперёд» (speculative execution).

К чему это привело

Разработчики ОС экстренно закрыли Meltdown так. Сделали две таблицы преобразования адресов: одну сокращённую для программы, другую полную для системных функций. Это несколько замедлило систему, но закрыло уязвимость. В дальнейшем её закрыли на уровне процессоров и забыли.

Разработчики браузеров внесли свою лепту — дело в том, что в современном браузере JavaScript частично компилируется в машинный код! И они подкорректировали компиляцию так, чтобы шансы на удачную эксплуатацию были минимальны.

Больше всего напряглись провайдеры виртуальных машин и контейнерных служб (Microsoft Azure и прочие) — они-то и напрягли производителей процессоров. И виртуальная машина, и контейнер позволяют запускать любой машинный код в изолированной среде (например, чтобы сделать нестандартный или высоконагруженный сервер), но в виртуальной машине ядро ОС отдельное, а в контейнере — общее на все контейнеры.

Spectre в 2018 начали понемногу прикрывать на уровне процессора. В 2021 году появилась информация о новой версии Spectre, к которой якобы уязвимы даже те процессоры, что закрыли в 2018.

Поскольку среднестатистический «кулхацкер» довольно туп, код из статей про Spectre быстро стал ловиться антивирусами. Но в любом случае ничего не известно о реальной эксплуатации ошибки.

Показать полностью 2
Отличная работа, все прочитано!