Category: фотография

Category was added automatically. Read all entries about "фотография".

wall

Верхний пост

Всем привет.

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

Я не пишу под замок. Сейчас "под глазиком" лежит n штук недописанных постов, под замком один пост с оффлайновыми контактами. И может быть ещё что-то случайное из давней древности.

Если хочется сказать что-то не по теме, это можно сделать тут.
Если что, писать можно на толстый-крокодил@yandex.ru -- как название журнала, но не подчёркивание а дефис.
wall

Unicode

Неожиданно для себя узнал некоторые кровавые подробности. Глубоко не разбирался, но впечатление получил. Оказывается, то ещё чудище обло и 129-зевно. А вовсе не "просто очень большая asсii таблица".

Комбинирование
Есть "символы", предназначенные для комбинирования с другими символами (combining characters), они записываются после базового символа и их может быть несколько.

å -- просто символ U+00E5, а-с-кружочком
å -- последовательность символов a и U+030a

ḁ̊ -- a + U+030a + U+0325 -- снизу тоже можно добавить кружочек, т.е. два комбинирующих к одной букве
ḁ̊ -- a + U+0325 + U+030a -- можно в обратном порядке
ы̥̊ -- ы + U+0325 + U+030a -- можно к букве ы
o⃥̥̊ -- o + U+0325 + U+030a + U+20e5 -- можно третий добавить, ещё и зачеркнуть

Это приводит к тому, что одинаково выглядящие строки могут иметь разные представления, отличающиеся даже количеством символов. Чтобы их сравнивать, сортировать, искать в одной строке другую нужно нормализировать строки. Такая нормализация называется канонической и есть даже два варианта, NFD (Normalization Form D, Decomposition, все тильдочки и кружочки в отдельные буковки) и NFC (Composition -- наоборот). При этом порядок комбинированных символов тоже важен, их нужно правильно сортировать, учитывая при этом, как они друг с другом взаимодействуют. Алгоритм нормализации должен приводить канонически эквивалентные строки (canonical equivalence) к одному виду.

Типография
Лигатуры и римские числа одним символом.

ffi -- это один символ U+FB03
ʩ -- и это один символ U+02A9
Ⅻ -- и даже это один символ U+216B

Чтобы сравнивать такие строки недостаточно канонической нормализации, это нормализация до уровня совместимости (compatibility equivalence). Есть версии алгоритмов NFKD и NFKC

In NFKC and NFKD, a K is used to stand for compatibility to avoid confusion with the C standing for composition.

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

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

К сожалению, сходу я не нашел, где в стандарте описана эквивалентность символов, поэтому не до конца уверен, что уходит, а что нет, остается верить википедии. Есть утилита, выдающая кучу информации по символам http://unicode.org/cldr/utility/character.jsp по коду. Там есть и про совместимость, но хотелось бы в тексте списком.

Но, кроме бессмысленной типографии есть вроде бы осмысленная. Zero-width joiner судя по описанию меняет смысл текста. Ещё есть несколько таких же. Есть модификаторы для чтения слева направо и наоборот: чтобы можно было вставлять в текст на английском цитату на арабском и в каждой части текста был свой порядок. Вроде бы это нормализация не затрагивает.

Семантика
Дублирование символов для разных контекстов. Греческая заглавная буква дельта Δ (U+0394), оператор Лапласа ∆ (U+2206) и треугольничек △ (U+25B3) это три совсем разных символа. Нижний регистр есть только у дельты. И это не единичный случай: для римских цифр отдельные символы, для стандартных единиц измерения и т.п. Есть специальные невидимые символы для отдельных контекстов: невидимый знак применения функции, умножения (U+2061, U+2062). Логика тут есть. Совместимость одно к другому приводит не всегда (для римских цифр приводит, для лапласиана нет, символ ома U+2126 приводит, какую-то специальную омегу U+2375 нет; общий алгоритм мне не известен, темна вода).

Ну и хватит про совместимость.

Прочее
Широко известная проблема с изменением регистра буквы ß (U+00DF) -- при переводе в верхний она становится парой букв SS, они при переводе в нижний конечно превращаются в ss. То есть операция изменения регистра необратима и может привести к изменению длины строки. Не знаю, насколько единичная ситуация.

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

a͡b -- это три символа a + U+0361 + b -- дуга должна быть над двумя соседними символами сразу. Такие комбинирующиеся тоже бывают.

----

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

Для желающих углубиться в википедии ещё много можно прочитать и faq на unicode.org довольно обширен. Ну и сам стандарт, но это уже хардкор.
Вот ещё хороший линукс-ориентированный текст: http://www.cl.cam.ac.uk/~mgk25/unicode.html Немного устаревший, но зато более практичный.

Вывод простой: "не пытайтесь повторить это дома".
Если судьба вдруг сведет -- бегите! Или хотя бы используйте что-нибудь стандартное типа ICU. Почти наверняка вы не хотите разбираться в этом сами. Да никто в здравом уме не захочет. А уж если это надо как-то красиво рисовать, то я вообще не знаю...
wall

Фаны 2009


Начинается закат, вид с перевала Чимтарга. Все фотографии -- не мои! Я фотоаппарат дома забыл :)

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

Подробный отчёт через два месяца неинтересен уже даже и мне.

Collapse )

Ну и [по инерции] очень хочется написать, какие молодцы все кто молодцы, и как там красиво, и ещё кучу очень красивых фотографий показать, и событий было разных... Но я всего этого делать не буду. Потому что вроде не надо :)