Несколько гиков добились своего




Оказывается, добавить символы в Юникод вполне реально, если потратить достаточно сил и времени. Следует только строго соблюдать процедуру и все правила.

Вчера произошло важное событие: консорциум Unicode опубликовал официальные спецификации нового стандарта Unicode 9.0. Наверное, больше всех радовался этому событию программист Теренс Иден (Terence Eden). Два с половиной года назад (3 декабря 2013 года) он опубликовал вопрос на популярном форуме для разработчиков Hacker News.

Каких полезных символов не хватает в Юникоде?

Теренс высказал идею, что наиболее очевидным кажется отсутствие знака «Питание». Знакомый всем символ определён в стандарте Международной электротехнической комиссии IEC 60417-5009 и примерно с середины 1970-х используется практически на каждом электронном устройстве, где имеется кнопка питания.



Единственным ответившим на вопрос был Джо Лоури (Joe Loughry), аспирант Оксфордского университета, специалист по тестированию и оценке на соответствие сертификации компьютерных систем безопасности.

Джо Лоури согласился с топикстартером. Он указал на то, что в консорциуме Unicode существует установленная процедура по рассмотрению и стандартизации новых символов, и он хотел бы помочь в этом деле.

Джо Лоури создал репозиторий на Github, где публиковались и редактировались документы для подачи в консорциум Unicode. Он предположил, что этот репозиторий может стать примером для других энтузиастов, которые хотят корректно оформить заявку на добавление символов в Юникод.

Итак, Теренс Иден и Джо Лоури приступили к оформлению заявки (предложения) в Unicode и разработали шрифт. Активное участие в проекте принял Брюс Нордман (Bruce Nordman), один из авторов оригинального стандарта IEEE 1621.

Кроме упомянутого символа «Питание», Джо Лоури предложил объединить в общей заявке группу символов, определённых в стандарте IEC 60417 (он же ISO 7000:2012).

Это следующие символы:

  • U+23FB POWER —
  • U+23FC POWER ON-OFF —
  • U+23FD POWER ON —
  • U+23FE POWER SLEEP —

К ним решили добавить ещё один символ из стандарта IEEE 1621.

  • U+2B58 POWER OFF —

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

Чтобы поддержать своё предложение, активисты открыли сайт UnicodePowerSymbol.com, где тоже опубликовали предложение, аргументацию и выкладывали новости кампании по включению символов в Юникод.

После этого начался период почтовой переписки, консультаций, телефонных переговоров, конференций, технических обсуждений. Авторы предложения убеждали коллег, что новые символы соответствуют всем необходимым правилам: 1) это действительно корректные общепринятые символы; 2) есть убедительные доказательства их реального использования; 3) они не обременены ограничениями копирайта; 4) члены консорциума Unicode считают, что они будут полезным добавлением к стандартному набору.

Насчёт четвёртого пункта всё-таки выявились разногласия. Только два символа и всем нравились.

Насчёт символа развернулась дискуссия, потому что в Юникоде уже были несколько символов для «луны». Правда, ни один из них в точности не соответствовал предложенному: или угол неправильный, или отсутствовала семантика «Спящего режима». Так что в итоге приняли.

Оставались только и . В Юникоде по-настоящему много символов для прямой линии и круга.

После многочисленных дискуссий и голосования всё-таки решили, что ни один из существующих символов не подходит для знака «Включенное питание», так что стал новым символом.

А вот для как знака выключенного питания нашли подходящую альтернативу — круг (U+2B58)



Новое значение просто добавили к существующему символу — это то, что авторы называют «? символа» в своём предложении.

В феврале 2014 года символы одобрила рабочая группа ISO 10646 Working Group 2 (JTC 1/SC 2/WG 2) на заседании WG2 #62 и рекомендовала Поправку 2 к стандарту ISO/IEC 10646:2014.

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

И вот наконец наступило счастливое утро 22 июня 2016 года.

Проснувшись с утра, Теренес Иден услышал о выходе новых спецификаций Unicode 9.0. И вот они — наши родные символы. Два с половиной года работы завершились успехом!


Счастливые разработчики предлагают использовать открытое руководство, если кто-то хочет повторить этот путь и включить в стандарт Юникод другие символы.

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


Все пользователи имеют право требовать от разработчиков своих операционных систем и программного обеспечения поддержки новых символов , , , и из стандарта Unicode 9.0!

В таблице указаны коды HTML Escape для 4? новых символов.

Символ HTML-код Символ
Питание ⏻
Переключатель питания ⏼
Питание включено ⏽
Питание выключено ⭘
Спящий режим ⏾

22 июня 2016 года они стали частью Юникода и теперь могут свободно использоваться везде.
Поделиться с друзьями
-->

Комментарии (89)


  1. Radmin
    23.06.2016 16:14
    -20

    И вот наконец наступило счастливое утро 22 июня 2016 года.


    Гораздо более счастливое, чем ровно за 75 лет до этого.

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


    1. amarao
      23.06.2016 17:21
      +5

      А что интересного с юникодом было 75 лет назад?


      1. avost
        23.06.2016 18:03
        +18

        Тогда один бесноватый решил избавиться от кириллицы в будущем уникоде в пользу латиницы в готическом начертании. Других совпадений найти не могу.


        1. Radmin
          23.06.2016 19:00
          -1

          В точку! Лучше и не скажешь. :)


          P.S. Не ожидал, если честно, такой агрессивной реакции, но что поделать… Остаётся делать выводы. :D


          1. Bot_0002
            23.06.2016 20:27
            +3

            Даже ГТ становится все менее гиковым.


            1. LazyCrazy
              24.06.2016 12:39
              -1

              Как меня надысь огорошили, «гик» — это больше не «человек, увлечённый высокими технологиями». Согласно википедии, это «человек, чрезвычайно увлечённый чем-либо; фанат». В качестве основных примеров упомянуты фанаты игр, комиксов, косплеев. Так что, боюсь, как бы не наоборот — «ГТ становится все более гиковым»…


          1. Nalivai
            24.06.2016 00:57
            +10

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


      1. Nalivai
        23.06.2016 19:50
        +5

        Например, его не было. Не самое счастливое время для юникода.


  1. SamoilowAlex
    23.06.2016 16:24
    +9

    Это еще раз доказывает, что сторонники внедрения эмодзи дали на лапу кому надо, иначе над их смайликами 2.0 поржали и забыли.


    1. Halt
      23.06.2016 18:06

      Меня больше удивляет, что действительно ходовые символы проходят со скрипом, но из недавней статьи мы узнаем, что «Осейдж (72 символа) — мёртвый сиуанский язык индейцев осейджи, проживавших раньше в резервации Оклахома (США)» был принят.

      Не имею ничего против языка индейцев, но неужели это сопоставимые вещи?


      1. KinshoMokuroku
        23.06.2016 19:53

        А вы уверены, что оный осейдж не мусолили годами перед принятием? Там некоторые письменности так и висят «в планах» до сих пор, хотя заявки были поданы черт-те когда. То есть, там для всего одинаковый «скрип», если не хуже.


        1. Halt
          23.06.2016 21:09

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


          1. Nalivai
            24.06.2016 01:01
            +3

            Идея юникода в том, чтобы там были все символы всех языков. Так что если что-то — язык, то no problem. А вот пиктограмкам еще доказать нужно что они чего-то значат для кого-то кроме того кто их нарисовал.


      1. not_ice
        23.06.2016 20:10

        72 символа Осейдж это фигня. По вашей же ссылке можно прочитать, что в юникод9 воткнули 6800 иероглифов вымершего государства СиСя :)


        1. alex_the_first
          23.06.2016 20:40
          +5

          Пока символы утверждали, все умерли?


      1. xapienz
        23.06.2016 20:13
        +1

        Зато есть целых 12 символов с поездами



        1. Kirillko312
          23.06.2016 21:55
          +6

          Видимо Шелдон Купер таки приложил к этому делу свою руку


          1. loly_girl
            24.06.2016 02:23

            Надо подсчитать, сколько там символов с флагами.


            1. TheBeast
              24.06.2016 10:16
              +1

              247.


              1. t3sc0
                24.06.2016 15:17

                хм, у меня 248


                1. ruikarikun
                  24.06.2016 15:59

                  Должно быть 249, по числу стран в ISO 3166-1.
                  Это не считая BLACK FLAG всяких.


        1. ruikarikun
          24.06.2016 12:08
          +1

          Логично. Ведь в Японии нет ни негров, ни тако, зато много разных типов поездов.


        1. dshster
          30.06.2016 10:14

          Вот только эти символы не совсем логичны — есть паровоз (Steam Locomotive, первый на картинке), но нет вагона для паровоза (а есть вагон электрички — Railway Car), из-за чего не получается нормальный состав.


      1. worldmind
        23.06.2016 20:32
        +5

        Мёртвые языки нужны, как учёным с ними работать? Для того и юникод — всё языки должны поддерживаться, а вот эмодзи это мутная тема.


        1. Halt
          23.06.2016 21:11

          Думаю да, по-видимому должна рассматриваться научная ценность объекта.


        1. AndrewN
          24.06.2016 08:13
          +1

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


          1. worldmind
            24.06.2016 12:00

            возможно, да только если верить википедии эмодзи уже более 800, мне думается что реально это уже не символы языка, а произвольные картинки, символов думаю было бы сильно меньше


        1. zloddey
          24.06.2016 08:57

          Фейспалм — очень нужный и полезный эмодзи. Наконец-то он тоже поддерживается!


        1. Alexeyslav
          29.06.2016 08:23

          Чем смайлики по своему смыслу хуже иероглифов? Те же иероглифы по сути.


          1. worldmind
            29.06.2016 09:55

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


            1. Alexeyslav
              29.06.2016 15:57

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


    1. u1789
      23.06.2016 19:53

      Каком критерию не соответствует, например, символ фейспалма?


      1. SamoilowAlex
        24.06.2016 08:51

        Такому, что он в оригинале не является символом.
        Если рассматривать пример из статьи, то сначала было: 1 — вкл, 0 — выкл, потом их начертание упростили и в итоге объединили. Все логично, а ваши эмодзи — это происки маркетологов.


        1. u1789
          24.06.2016 09:21

          > он в оригинале не является символом
          Он был символом в некоторых мессенджерах.


          1. SamoilowAlex
            24.06.2016 10:21

            Угу, по велению левой пятки маркетолога-девелопера-хипстера, который решил пересадить на свой велосипед как можно больше ЦА. И вообще это не обязательно мог быть символ, отличный пример ныне вымирающий mail-агент, что слал смайлы в виде XML тегов понимаемых парсером, а выглядело как символ. Разумных причин для добавления подобного символа нет.


            1. u1789
              24.06.2016 11:35

              > смайлы в виде XML тегов понимаемых парсером
              Ага, пусть все изобретают свои собственные кодировки популярных символов, несовместимые друг с другом.

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


              1. Tacgnol
                24.06.2016 23:25

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


  1. NeoCode
    23.06.2016 16:34
    +5

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

    Могу ошибаться, но вроде в Юникоде еще нет символов дорожных знаков. Общеупребительные, не под копирайтом и даже сами по себе стандартизированные.


    1. j_wayne
      23.06.2016 16:43
      +2

      Я могу ошибаться, но насколько я знаю, то что нам кажется общеупотребительным, является таковым в основном в нашем полушарии. В США другие знаки.


      1. vsapronov
        23.06.2016 17:04
        +1

        Как и алфавиты в разных языках в разных странах… Но алфаывиты есть в юникоде.


      1. darthslider
        23.06.2016 18:30
        +1

        Большая часть дорожных знаков на самом деле совпадает по всему миру. Тот же «кирпич» универсален. Хотя есть и различающиеся. Иногда различается «форма» при сохранении содержания (Знак с «коровой» например реально везде разный, где-то корова «идёт» налево, а где-то направо, где-то «смотрит» вперёд, а где-то на водителя) или же знак «дорожные работы» очень разнообразен по исполнению, но «копатель» везде узнаваем. Хотя и локальные знаки (как и правила) существуют.
        В США большая часть знаков такая же.


        1. ivlis
          23.06.2016 21:03
          +1

          Такая же как где? В США знаки дорожные обычно просто надписи: «Do not pass», «No left turn», «No turns», «No turn on red», «Speed limit 30», «Minimum speed 55», «One way», «No stopping, standing or parking» и тд. Причём знаки ещё разнятся от штата к штату. «Кирпич» примерно такой же как в Европе, но на нём ещё написано «Do not enter», а бывает просто написано «Do not enter» без кирпича.


          1. Atakua
            23.06.2016 23:50

            Подтверждаю. В США дорожные знаки совсем другие, их очень много и значительная часть выражена текстом.

            В России последнее бы не прокатило — слова длиннее и требуют согласования (падежи, предлоги и т.п.). Тогда как на американских текстовых знаках формально правила грамматики нарушаются, но всё понятно и так — язык позволяет многое опускать.


            1. ZXSi
              24.06.2016 01:59

              Так в любом случае знаки надо учить. Пусть сделают их на английском, как в США.


              1. Atakua
                24.06.2016 10:56

                >Пусть сделают их на английском, как в США.

                В России? 1) зачем, если уже есть работающая система, совместимая с многими соседними странами; 2) почему бы сразу не на китайском — было бы достаточно одного-двух иероглифов на знак?

                В Америке много чего странного, например, футы, дюймы, унции (несколько видов), галлоны. Но ничего, живём как-то на планете все вместе.


                1. ruikarikun
                  24.06.2016 12:26

                  Пример использования иероглифа и слоговой азбуки на знаке «STOP»:
                  image


                1. ZXSi
                  24.06.2016 23:04

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


                  1. Chamie
                    28.06.2016 19:04

                    Английская система мер вовсе не странная, это просто другая система мер.
                    Она не просто «другая», она неудобная. Устаревшая исторически сложившаяся система мер, которые друг другу ещё и не кратны. Метрическую же не просто так придумали и приняли везде, где смогли.


            1. darthslider
              24.06.2016 10:23
              +1

              http://www.discoverabroad.com/us/livingabroad/transportation/AmericanRoadSigns.htm например.
              Да, действительно много текста, но часть знаков идентична либо очень похожа.


              1. Atakua
                24.06.2016 11:25

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


                image

                Конечно, STOP ни с чем не спутаешь. Но вот лишь некоторые различия, которые бросаются в глаза:


                • знаки один и два вполне можно воспринять как указатели скорости. У нас указатели номеров дорог совсем другие и по цвету, и по форме, и буква в них включена, например M3, A101, E95.
                • знак №15 — мне лично был непонятен на местности, пока не объяснили
                • знаки 31 и 44 — аббревиатуры, непонятные без расшифровки
                • знак 30 — у нас это "красный кирпич на палочке"
                • знаки номер три и пять — вообще непонятно, что. У нас больница — это красный крест. И да, у нас есть потрясающий по понятности восклицательный знак "прочие опасности". Что-то опасное происходит, так что вы тут поосторожнее.

                Не указаны знаки.


                • Высота проезда (clearance): у нас знак, у них надпись



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


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


                1. maxpsyhos
                  24.06.2016 11:33
                  +1

                  Как я уже писал ниже, стандартизованная универсальная система дорожных знаков есть. Из крупных стран её НЕ используют: США, Канада, Аргентина, Китай, Япония, Австралия. Во всех остальных знаки выглядят плюс-минус одинаково.


                1. darthslider
                  24.06.2016 11:59
                  +1

                  Тут есть еще один нюанс — в США очень качественно сделана система оповещения водителей. Информация зачастую не то что дублируется, а повторяется 3-4 раза. (До поворота на туда-то 500 метров, потом 200 метров, потом 100 метров, потом вот он поворот, потом вы проехали поворот 100 метров назад и т.д.).
                  Да, очень много текста, да есть свои уникальные знаки и правила, но в целом мне показалось, что ездить по США проще, чем по Европе, где знаки и правила гораздо ближе к нашим. Но я знаю язык, по этому надписи эти читаю спокойно, это важное требование.


                  1. ssneg
                    30.06.2016 10:37

                    В США также много информации дублируется надписями на дороге: no turn on red, slow down, bus lane, curve ahead и т.п. — это тоже весьма удобно.

                    Что в США ужасно — это замена европейских круговых развязок на «четыре стопа».


                1. Cubus
                  24.06.2016 12:16

                  Насчёт знака 31: DIP — это не аббревиатура, а полноценное слово, означающее глубокую складку рельефа.


        1. black_semargl
          23.06.2016 21:22
          +1

          В разных шрифтах символы с одинаковыми кодами вполне себе слегка разные.


          1. Atakua
            24.06.2016 11:02

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


            1. loly_girl
              24.06.2016 11:10
              +2

              Помню, как лет в пять не могла читать буквы с засечками.


      1. maxpsyhos
        24.06.2016 11:17
        +2

        Есть международная конвенция по дорожным знакам, которая соблюдается во всей Европе, части Африки и Латинской Америки. Вот её вполне можно добавить. У США в этом вопросе как всегда свой собственный путь, но это уже их проблемы.


    1. A-Stahl
      23.06.2016 17:03
      +3

      В Юникоде вообще много чего нет. И зачастую то, что есть представлено не в полном объёме, что делает бессмысленными существующие знаки.
      Я, например, недавно нашёл себе сумасшедшее развлечение — пишу ASCII игры для Андроида. Так вот, среди символов псевдографики существуют огромные пробелы, противоречащие здравому смыслу. Некоторые пытались поднимать этот вопрос. Им ответили: псевдографика вообще в Юникоде существует лишь для совместимости и никто там порядок наводить не будет. Предложили сказать спасибо, что хоть в таком виде есть.
      А как уродские смайлы добавлять, на которые смотреть противно, так они впереди планеты всей…


      1. Fen1kz
        23.06.2016 17:50
        +1

        Да ладно, что вы напали напали на уродские смайлы-то. По ссылке в статье, в юникоде есть:
        new moon with face Unicode code point: U+1F31A
        first quarter moon with face Unicode code point: U+1F31B
        last quarter moon with face Unicode code point: U+1F31C
        full moon with face Unicode code point: U+1F31D
        moon viewing ceremony Unicode code point: U+1F391


        1. A-Stahl
          23.06.2016 17:57

          Ну что вы… Разве не очевидно, что эти символы общеприняты, реально используются, не обременены ограничениями копирайта и полезны?
          Мне иногда кажется, что пополнением Юникогда занимаются люди с какими-то болезнями головы.


        1. Alexey2005
          23.06.2016 20:54
          -1

          А не ли в Unicode символа trollface? Он куда полезнее moonface.


  1. perfect_genius
    23.06.2016 16:45
    +17

    А в Юникоде есть мужской половой орган?

    • 1) это действительно общепринятый символ;
    • 2) есть убедительные доказательства их реального использования; (его чертят везде, даже на Луне и Марсе уже)
    • 3) они не обременены ограничениями копирайта;
    • 4) члены консорциума Unicode считают, что они будут полезным добавлением к стандартному набору. (даже члены консорциума считают, что члены будут полезны, простите)


    1. Wizard_of_light
      23.06.2016 18:24
      +2

      Ещё один обычный вопрос на форуме.


    1. black_semargl
      23.06.2016 21:35
      +2

      Уже есть
      >


    1. Kirillko312
      23.06.2016 21:58
      +1

      Как минимум члены принимали участие в создании членов консорциума


  1. ababo
    23.06.2016 17:20
    +5

    Ну, заживём теперь…


    1. sadamune
      24.06.2016 10:14

      Самый лучший комментарий!


  1. Bas1l
    23.06.2016 17:31

    Докторант/doctoral student/PhD student—это по-нашему аспирант, кстати говоря. После этого он станет постдоком, если защитится и останется в науке. Либо еще одну кандидатскую может писать, тоже вариант


  1. ahdenchik
    23.06.2016 19:53

    А зачем вообще в юникоде что-то, кроме букв и иероглифов?


    1. worldmind
      23.06.2016 20:38

      и цифр с математическими и иными научными символами


    1. amdf
      23.06.2016 23:49
      +4

      Потому что существуют знаки, не являющиеся ни буквами, ни иероглифами.


      1. ahdenchik
        24.06.2016 23:41

        Отлично, пусть себе существуют вне шрифтов


  1. Kroleg
    23.06.2016 19:54
    +3

    Рискую нарваться на минусы, но мне кажется, что порочна сама архитектура Юникода.
    Мы будем получать все больше похожих друг на друга смайликов, в то время как во многих областях деятельности, культурах и географических регионах люди будут страдать от отсутствия нужных символов.
    Вот один из многих способов решения этой проблемы: Polycode.


    1. worldmind
      23.06.2016 21:34
      +1

      Там много букв, одной фразой можно суть идеи выразить?


      1. black_semargl
        23.06.2016 21:40

        Упрощённо — вместо произвольного кода символа используется код, по которому можно построить векторную картинку.
        Соответственно если символа нет в шрифте — его всё равно кое-как но отрисуют.


        1. maa_boo
          24.06.2016 10:16

          Может подскажете, а в юникоде же используются составные символы?

          Ну когда A на самом деле A и ?, напечатанные на одном месте.


          1. black_semargl
            24.06.2016 11:08
            +1

            Есть и такой вариант и такой. Потому как если символ входит в язык — нужно обеспечивать правильную сортировку и т.п., для двухсимвольной конструкции оно сложно.
            Текст зачёркнутый хтмл-разеткой
            Т?е?к?с?т? ?з?а?ч?ё?р?к?н?у?т?ы?й? ?с?р?е?д?с?т?в?а?м?и? ?ю?н?и?к?о?д?а? (можно так зачёркнутым и скопировать)


      1. Kroleg
        24.06.2016 18:24

        Кратко не получилось:
        Предлагается формат для хранения текста в файлах и передачи по сетям.
        Внутри приложений он преобразуется в какое-то внутреннее представление, которое никак не описывается данным форматом.

        1. Вместо фиксированных кодов символов из диапазона 0..0x10ffff вводятся имена переменной длины, количество которых не лимитировано.
        Учитывая, что современный unicode тоже может быть:

        • комбинацией нескольких code-points,
        • каждый code-point может кодироваться парой сурогатов
        • и каждый суррогат в utf8 может занимать до шести байт,

        предложение кодировать символы переменным числом байт выглядит не так страшно.

        2. Вводятся пространства имен — языковые культуры (латиница, польский, древнеславянский).
        Каждый символ может иметь разные смыслы в разных языковых культурах.
        Культуры также задаются именами их может быть сколько угодно.
        В компьютере установлен некоторый набор поддерживаемых культур.
        Культуры могут вкладываться и претасовываться в порядке приоритетов, например, фрагмент текста может начинаться с задания трех культур:
        — Латиница
        — Германский
        — Древнегерманский
        В результате языковые культуры выстраиваются в упорядоченный список.
        Далее идущий текст состоит из имен символов.
        И эти имена вначале ищутся в древнегерманском алфавите, если не найдены — в современном германском, если их нет и там, в общелатинском.
        Символ опознанный языковой культурой отображается и обрабатывается этой культурой (культура может трактовать символ как отображаемый, модифицирующий или управляющий).
        Культура занимается
        — алфавитными сортировками,
        — сменой регистра,
        — нормализацией,
        — типографикой,
        — переводом в звук,
        — семантическим анализом своего текста по своим правилам.
        Символ не опознанный никакой культурой отображается дефолтным (fail-safe) рендерером.
        Это возможно потому, что имена символов — это не строки текста, а команды рисования.
        В вышеприведенном примере на моем компьютере была установлена только общелатинская культура, поэтому я увижу
        — пометку, что текст германский и древнегерманский,
        — обычные латинские буквы,
        — несколько странных угловатых древнегерманских букв (отображенных дефолтным рендерером).

        3. Имена символов являются командами рисования и задают их внешний вид, и для этого существует две нотации:
        — условное грубое начертание — оно компактно и пригодно для 99% случаев,
        — полиграфически аккуратное начертание — позволяет кодировать многоцветные комбинации полигонов, заданных сплайнами, но занимает существенно больше места.

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

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

        5. Работа с именами символов вместо кодов — затратное дело. Они занимают много памяти, и их приходится искать в хеш-мапах.
        Поэтому существет таблица на 252 элемента, которая строится автоматически в процессе парсинга текста.
        Благодаря этой таблице последние 252 символа или имени языковой культуры использованные в тексте
        могут быть закодированы одним байтом и обработаны без поиска текстовых строк.


        1. worldmind
          24.06.2016 19:22

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


    1. mwizard
      23.06.2016 23:21
      +3

      В целом идея мне нравится, но у меня возник ряд вопросов.


      1. Насколько далеко простираются полномочия "рендерера неопознанных знаков"? Например, в демонстрации рендерер рисует диакритический знак. Значит ли это, что рендерер будет рисовать и лигатуры типа ? (U+FB01), и широкие диакритики типа a?b (U+035D)? А контекстные формы арабской вязи?


      2. При отрисовке диакритика в примере он был поставлен сверху. Как быть с диакритиками, которые рисуются в других местах? Например, в тайском, кхмерском и лаосском письме есть диакритики, которые рисуются слева от буквы, к которой они привязаны. Причем это и не диакритики-то, по сути — это их гласные буквы. Как быть с корейским письмом, где в одно знакоместо могут быть упакованы от 2 до 5 букв?


      3. Как формат "простого символа" (код 1) в принципе декларирует позицию будущего диакритика? Как отличаются диакритики, которые выглядят одинаково, но имеют разный смысл в зависимости от положения относительно предыдущего знака? Или отличаются размером?


      4. Если рендерер неопознанных знаков собирается покрывать все эти случаи, не приблизится ли он по сложности к виртуальной машине OpenType? Может, тогда его сразу и использовать? Если упрощать, то насколько?


      5. Почему выбрано представление, где диакритик идет до буквы, к которой он применяется? Ведь даже по логике письма сначала рисуется основной знак, затем к нему дописывается дополнение, а не наоборот.


      6. Некоторые люди вынуждены воспринимать текст на слух. Так как одна из заявленных целей polycode — дедупликация символов, которые выглядят одинаково, то каким образом экранный читатель сможет отличить символы, одинаковые визуально, но разные семантически? Например, "буква о" и "цифра ноль"? Можно, конечно, например, перечеркивать ноль на манер ZX Spectrum, то как быть со знаками, которые выглядят примерно одинаково, но имеют кардинально разный смысл, вроде E𝖤𝗘𝙴𝔼𝐄𝐸𝑬𝘌𝙀𝔈𝕰ℰ𝓔?


      7. Лигатура ? (U+FB01) — это один знак polycode или два? А чешские диграфы ch и dz?


      8. Как объявить пробелы разной ширины, включая нулевую?


      9. В юникоде есть понятия классов символов. Что-то аналогичное в polycode?


      10. Юникод — это еще и правила (де-)нормализации и (де-)композиции знаков. Что-то аналогичное в polycode?


      11. В юникоде есть управляющие символы, многие из которых невидимы — сменить направление письма, например. Что-то аналогичное в polycode?


      12. Почему так неудачно выбрано название? Polycode уже используется существующим игровым движком на lua, который, к тому же, занял домен polycode.org.


      13. Заявленный механизм отрисовки "сложных знаков" не учитывает хинтинг. Может, все-таки OpenType?


      14. Заявленный механизм отрисовки "сложных знаков" не учитывает потребности людей с ограничениями зрения и роботов. Допустим, эмблема бэтмена — ее невозможно никак описать или прочитать так, чтобы человек это понял, т.е. polycode нужно расширить еще и описаниями букв. Автор polycode выказывал претензию, мол, с чего бы это вдруг всем подряд знать английский — значит, это тоже нужно как-то решать, потому что я могу не знать суахили, на котором описан какой-то знак, но я хочу понимать, что он значит — на моем родном языке, или же на английском.


      1. fermiums
        24.06.2016 10:14

        mwizard согласен с пунктом 6. И в общем ясно что идея критики не выдерживает. Но когда в Автокаде приходиться изменять две тысячи текстовых объектов которые не влазят в рамки по вине того, что не использовали нужный шрифт, начинаешь задумываться о всех добрых людях которые разрабатывали эти стандарты.
        Отдельно хочу сказать о «роботах» пункт 14. Нейронным сетям было-бы куда проще работать с Polycode. Ведь основная их задача находить соответствия как я понимаю. А с учётом того что множество новостей на ГТ посвящено нейронным сетям. Что-то между человеческими «каряками» и машинным кодом должно быть общее. Polycode показывает что это именно написание букв, а не то как они выглядят.
        Итог моего монолога такой: что юникод хорош для людей но не для машин, следовательно нужно выбрать между «стандарт для людей» или «стандарт для машин» отталкиваясь от требований ЭВМ. А там уже выводить символы как ей будет удобно, чтобы мы понимали. А то выходит мы понимаем какие символы (слова) нам выдаёт ЭВМ, а она нет. Помнит как стишок в школе и может повторить но сочинить сама не сможет. Следовательно Если машина знает что ей сочинять она и выведет так как нам будет удобно, ведь вся идея машин, ЭВМ, нейроных сетей, в том чтобы они делали за нас нашу работу, то есть думали->обрабатывали->объясняли, а не копирывали-копирывали-показывали.


        1. maxpsyhos
          24.06.2016 10:38

          То есть по вашему, изучать с помощью нейронки КАЖДЫЙ символ в строке на его похожесть на букву — это проще, чем просто посмотреть в таблице кодов?


          1. fermiums
            24.06.2016 16:14

            да ведь нам нужно что-бы все символы в мире можно было одним способом расшифровать и воспроизвести.


      1. Kroleg
        24.06.2016 22:28

        Спасибо за вопросы. Думаю, многие ответы содержатся в ответе на предыдущий комментарий.
        1, 2, 3, 7. Эти решения принимаются автором языковой культуры.
        2. Диакритики накладываются поверх друг друга.
        4, 13. Поликод не шрифт, а система именования символов. Он не стремится покрывать все случаи.
        5. Диакритик — модификатор символа, если расположить его перед, мы получаем префиксный код, который удобнее парсить.
        6. Для этого служат языковые культуры. Цифра ноль создает проблемы и сейчас, думаю ее лучше зачеркнуть.
        8, 11. В дефолтной языковой культуре символы ? ¶ будут управляющими. Можно добавить literal культуру, в которой эти символы будут отображаемыми.
        9, 10 Да. Языковые культуры.
        12. Ок пусть будет, скажем,… «Полуэкт».
        14. Алфавит — набор знаков, которые можно увидеть или пощупать. Например, я придумал новый знак и добавил его в свой текст. Естественно в этом тексте будет объяснение этого знака, иначе знак не имеет смысла. Далее этот знак начинает жить своей жизнью, его начинают цитировать, копировать из текста в текст. Если теперь кто-то встретит этот знак и захочет узнать, что он означает, он просто сделает поисковый запрос и на какой-нибудь википедии увидит обсуждение филосовского понятия, связанного с этим знаком. Если бы мы попытались отразить определение смысла знака в его названии, мы получили бы набор слов, навроде: «Cyrillic Capital Letter Big Yus» которые значат то же самое, что и оригинальный символ. Все равно придется гуглить. Лучше я сам этот символ погуглю.

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


  1. alecv
    25.06.2016 10:26

    В Unicode уже столько управляющих символов (направление, ширина и т.д.) что пора уже сделать Решительный Шаг и ввести наконец в Unicode полноценный язык программирования, как в Word-t есть Visual Basic, а в Emacs — Lisp. Тогда растеризатор смог бы просто выполнять байт-код, типа языка Лого (Скратч) рисуя символы. Да, и назвать это не Unicode 10, а Unicode X.


    1. Alexeyslav
      29.06.2016 13:26
      +1

      Тогда на вирусы надо будет проверять и простейшие текстовые последовательности… где есть язык программирования там есть и вирусы… пришлют тебе символ в скайпе который заполнит собой всё пространство фракталом и нагрузит систему отрисовкой одного символа на 100%.


      1. alecv
        30.06.2016 12:27

        Дак уже и сейчас можно делать разрывающие мозг тексты. Растеризатор пока выживает.
        http://lurkmore.to/Zalgo
        (если у вас inet нефильтрованый)


  1. pestilent
    26.06.2016 21:08
    +1

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