Bdyssh! // Бдыщщь!

Купите икону «Неупиваемая чаша» и молитесь, %username%!

14.08.2012, 10:49
Uncategorized // http://bdyssh.ru/?p=365

Как сохранить зрение при работе на ЭВМ

Этот текст ещё не написан. Идёт финальная предпроизводственная настройка.

This site will be open shortly. It will be written in English, as well as Russian. Please be patient.

NEW!!! 10/11/2013: Added final, absolutely correct color filter.

Предыстория

Many years ago

 

Развитие вычислительной техники неразрывно связано с развитием средств отображения результатов вычислений. Электрические и электронные счётные устройства, а затем и ЭВМ (компьютеры), прошли несколько эпохальных смен устройств отображения.Статические устройства отображения, такие как печатающий терминал: какое-то время распечатки были единственным средством отображения у ЭВМ. Телетайпные распечатки являются безопасными для зрения, так как не излучают свет и не имеют движущихся частей; такие распечатки имеют единственный, достаточно крупный, не матричный шрифт, что способствует долговременной работе глаз с текстом без усталости.Следующий этап — битовые и символьные индикаторы. Лампы накаливания, неоновые лампы, числовые неоновые индикаторы, сегментные знакосинтезирующие индикаторы (накаливания, неоновые, с горячим катодом, и, наконец, светодиодные), матричные знакосинтезирующие индикаторы (светодиодные), наряду с отдельными светодиодами. Все они работают по принципу минимума засветки; то есть, включены только те элементы, разряды, или сегменты, которые несут полезную информацию. Такие устройства являлись, в большинстве, полностью безопасными для глаз, так как излучение было простого спектрального состава, от красного до светло-зелёного цвета, низкой интенсивности (вспоминаем принцип минимума засветки). Исключение из этого большинства — устройства с динамической индикацией, что по вредности аналогично развёртке ЭЛТ (см. далее). Но, учитывая принцип минимума засветки, вредное влияние полностью сведено к минимально возможному: так, неактивные элементы, сегменты и разряды, которых большинство — выключены, а значит в них никакой развёртки нет.

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

Параллельно идущий этап, хотя и начавшийся позже, но и продлившийся дольше — эпоха электронно-лучевых трубок. Значительно большие возможности, предоставляемые такими дисплеями, и прежде всего – отображение графики, обусловили их широкое применение.
Существовали символьные ЭЛТ (со встроенными буквами в виде трафарета) и лучевые ЭЛТ, на основании которых можно построить три типа терминала: Векторный без аппаратной памяти,

Test
I will write this later, when russian part become almost finalized.

 

Рис. 1. Подпись к картинке шрифтом высоты -1 по-русски. Текст куда-то залезает, несмотря на то что ему совершенно незачем куда-то залезать, потому что залезание в соседнюю колонку это некрасиво, не соответствует ГОСТ и вообще нужно придумать антизалезалку, чтобы никакой текст, будь то большой или маленький, или даже смешной, никуда не налезал бы на другой текст.Дополнение: Уже не вылезает?! <br> И куда это делся мой возврат каретки? Fig. 1 This is a picture. Text text text text text text text text text text text text text text text text text text text text text

векторный с аппаратной памятью, и растровый.Все типы ЭЛТ кроме растрового, являлись достаточно безопасными для глаз, так как холостого прохода луча (отключения тока луча) у них практически не было: луч всё время рисовал полезные данные. Но они не могли отображать растровую графику и были трудны в программировании. Выводить текст и прямые линии было легко, но постепенно этого становилось недостаточно. Преодолели эти ограничения введением развёртки, или растра, в ЭЛТ. И в итоге, основным средством отображения для ЭВМ стал прямоугольный массив пикселей. Он может отображать, в том числе, и любую информацию которую могли отобразить предыдущие поколения ЭЛТ, но с существенно более низким качеством. Все наклонные линии получаются “лесенкой” – пикселизованные. Особенно это касалось первых видеоконтроллеров, в которых, долгое время, видеоразрешение не превышало телевизионного (320*200). Но гораздо более худшие свойства такого дисплея порой остаются без должного внимания:

  1. Холостой прогон луча. Дисплей – не телевизор. При отображении результатов вычислений или контурной графики, значительная часть времени прогона луча тратится впустую, луч прогоняется и по отключенным пикселям, но в это время отключается его яркость. Это проводит к очень высокому отношению мгновенной яркости луча к средней яркости изображения. Для того чтобы сделать приемлемую яркость картинки, луч может иметь ток до миллиампера. Такой луч (электронный пучок) может легко прожечь люминифор, если остановить развёртку – это хорошо известно телемастерам. Стоит ли говорить, что такой луч вреден для глаз. Но вред можно уменьшить, понизив яркость картинки. В дальнейшем это преодолели переходом на безлучевые матричные отображающие устройства, такие как LCD-дисплеи, но добавив других проблем (см. ниже).
  2. Возможность засветки больших областей изображения, вплоть до того, что засвеченная область занимает больше половины площади, а как апофеоз современных технологий WYSIWYG* — более 99% площади!

* Примечание. Здесь под аббревиатурой WYSIWYG имеется в виду только инверсия цветов, введённая в обиход именно в этой технологии: якобы, “раз у нас результат работы на ЭВМ (распечатка) – белая, а буквы на ней чёрные, то давайте сделаем и на экране также, чтобы результат работы как можно меньше отличался от содержимого экрана”.

WYSIWYG, в части инверсии цветов, – главный и опасный порок комбинации двух технологий — современного матричного экранного вывода и офисного программного обеспечения. С лёгкой руки создателя первого WYSIWYG-редактора, явно не только не имевшего никакого представления об устройстве зрения, но и, по-видимому, не пользовавшегося выпущенными им же продуктами самостоятельно (иначе бы он заметил, что что-то не так!), инверсия цвета пошла в массы.

Представьте себе, что разработчик сделал панель с индикаторными светодиодами, где индикация инверсная. То есть, панель сплошь утыкана светодиодами, или состоит из одних светодиодов, а индикация режимов производится гашением некоторых из них. Бред? А чем это отличается от WYSIWYG? Что бы сделали с таким разработчиком? А почему этого не сделали с разработчиками WYSIWYG?!

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

Так какие же опасности представляет белый фон?

To be continued…

 

  1. Яркость. Человеческий глаз воспринимает текстовую информацию не на основе абсолютной яркости символов, а на основе перепада (производной) яркости символа по отношению к фону. При этом не имеет значения, чёрный фон или белый – перепад-то всё равно одинаковый. Однако, в глаз должны попадать не только перепады, но и ещё достаточное количество просто световой энергии для работы глаза. Поэтому бумажные документы имеют белый фон – он и обеспечивает отражение достаточного количества даже слабого внешнего света в глаза. Но дисплей – устройство не отражающее, а излучающее, и для его работы внешний свет наоборот не нужен. Если работать с белым фоном, то количество информации, поступающее в глаза, остаётся тем же, а вот ненужное постоянное световое излучение, утомляющее и выжигающее глаза, — в тысячи раз больше.
    Значительно усугубляет ситуацию с выжиганием глаз ещё и то, что многие пользователи бездумно выставляют яркость и контрастность дисплея на 100%, и это наиболее опасно на кинескопах типа Trinitron или Flatron (а особенно на мониторах SuperBright). В инструкции на мониторы это не оговаривается. При работе с белым фоном есть и другие огромные минусы:
  2. Рентгеновское излучение: оно пропорционально средней яркости картинки (анодному току кинескопа, если Вы спец), и максимально при белом фоне. Оно совершенно не ослабляется никакими даже самыми современными кинескопами или защитными экранами (сделать это невозможно, не смотря ни на какие рекламные заявления). Оно действует на организм в целом. По сути это обыкновенная радиация. Она «светит» из дисплея прямо в голову и отклонить её невозможно. При прочих равных условиях, эффект в 5 раз ниже на действительно монохромных мониторах.
  3. Частоты развёрток. При белом фоне глаз получает дополнительное утомление из-за «развёртки» изображения. Чем выше частота развёртки, тем ниже утомление. Если частоту развёртки выставить столь большую, что человек её уже не замечает, это совсем не значит, что данная вредная составляющая утомления отсутствует. Но при поднятии частот развёртки пропорционально возрастает частота электромагнитного излучения и его мощность. Значит эта составляющая вредного воздействия на организм возрастает в квадрате. Однако, ЭМ излучение теоретически возможно экранировать и/или отклонить в стороны и назад. Реально в дорогих мониторах экранируют только электрическую составляющую этого излучения. Магнитная требует мощного железного кожуха и в иностранной аппаратуре не применяется. Об отклонении излучения мне достоверно ничего не известно, но предположительно это достаточно дорого для того, чтобы иметь распространение в коммерческих продуктах.
  4. Пикселизация. При белом фоне, большой яркости и слишком коротком расстоянии от экрана до глаз, возникает эффект «пикселизации» – неравномерное выжигание сетчатки глаза из-за проекции на него изображения с явно различаемыми RGB-пикселями. Проявляется в том, что человек «видит» эту сетку некоторое время после того как перестаёт смотреть в монитор. Эффект полностью отсутствует только на действительно монохромных мониторах.
  5. Косвенные недостатки – потребляемая монитором и видеокартой лишняя мощность из-за яркости (+25 Вт монитор) и высоких частот развёртки (до +70 Вт монитор, +20 Вт видеокарта), лишний нагрев помещения, шум от видеокарты.
  6. Не зависит от всего вышеописанного лишь ионизирующее действие монитора (положительная ионизация пыли воздуха). Оно на 1-2 порядка меньше только у монохромных мониторов.

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

Что же делать?

Поскольку найти плоский монохромный ЭЛТ-монитор невозможно, я решаю все эти проблемы набором простых действий: выставляю во всех программах и операционной системе чёрный фон и светло-серый текст по умолчанию, яркость от 10 до 50% в зависимости от внешней освещённости, контраст 10-30%, частоту развёртки не более 85 Гц, и адекватно большой шрифт, где это возможно.
Теоретически при этом устраняются все указанные негативные влияния.
Практически, при низких частотах развёртки и низкой контрастности, ещё и возрастает (в квадрате) чёткость изображения; при этом мерцание, вызываемое развёрткой, заметить просто невозможно, даже краем глаза (он наиболее чувсивителен к мерцанию).
Ну а субъективные результаты таковы, что я сижу за компьютером от 2 до 14 часов в сутки (работа такая, а игры – отдельная тема), совершенно не замечая этого. Стоит мне сесть за чужой «нормальный» компьютер, как я сразу чувствую всю тяжесть положения того человека, который за ним сидит, и мне его становится жалко. Поэтому вот и пишу это, чтобы спасти хоть кого-нибудь от неправильного пользования мониторами и программами.

Какие недостатки?

Чёрный фон имеет 2 недостатка, связанных с неправильным написанием части программ, которые вместо `цвета букв`, взятого из реестра (по умолчанию чёрный в Windows) просто тупо используют `чёрный цвет` (лечится это только временным переключением заранее созданных двух цветовых схем в Windows), а также при предварительном просмотре перед печатью показывают документ на чёрном фоне, заданном мной, хотя 5 секунд можно посмотреть и на белом, как будет на бумаге (это не лечится к сожалению никак).

Как изменить цветовую схему в Интернет?

После настройки общей схемы Windows, настройте в Internet Explorer:
1) меню Сервис – Свойства обозревателя – Общие – Оформление. Включите три верхние галочки.
2) меню Сервис – Свойства обозревателя – Общие – Цвета. Включите все галочки.

Что можно сделать, не меняя цветовой схемы?

Выставьте яркость и контрастность на достаточно низкие уровни. Отодвиньте монитор дальше от себя (или себя от монитора). Не работайте при прямом солнечном свете или в полумраке/темноте. Увеличьте шрифт. Иногда помогает применение дорогого стеклянного защитного экрана типа Polaroid (на чём основано его действие, мне неизвестно, но утомление он уменьшает).

Часть 2: Про ЖК-мониторы.

Эта часть статьи была написана в 2006 г., и будет несколько дополнена.

Тем, кто уже прочёл первую часть моей страшилки, могу сообщить несколько неплохих обстоятельств. Большую часть недостатков обычных (ЭЛТ) мониторов, в частности тех, что влияют на здоровье, попытались устранить разработчики нового типа мониторов – ЖК. Правда, производятся и продаются они не из-за этого, а лишь потому, что их себестоимость возможно сделать в несколько раз ниже, чем у ЭЛТ-мониторов (малая себестоимость – залог больших прибылей и сверхприбылей). Какие их достоинства:

  • Полное отсутствие рентгеновского и ЭМ излучения.
  • Инерционность (позволяет изображению не мерцать).
  • Полное отсутствие геометрических искажений и муара (этот эффект связан с невозможностью привязки RGB-триад ЭЛТ-монитора к физическим пикселям).
  • Высокая графическая чёткость картинки.
  • Отсутствуют высокие постоянные напряжения, и значит не меняет ионный состав воздуха, безопасен для детей.
  • Малые размеры и вес, низкое потребление (в 10 раз меньше ЭЛТ монитора), не греет комнату; возможно дистанционное низковольтное питание, а значит безопасно применять в ванной комнате (накрыв плёнкой).
  • Возможна установка горизонтально над подушкой кровати, для работы лёжа.

Но есть и недостатки:

  • Небольшой угол обзора.
  • Очень плохая цветопередача. Почему?!
  • Плохая контрастность.
  • Инерционность (затруднены игры).
  • Чёткая картинка только при единственном разрешении (и как следствие, плохая картинка в текстовом режиме).
  • Очень сильный эффект “пикселизации”, особенно при работе с белым фоном.
  • Невозможность использования в повёрнутом на 90° виде (из-за эффекта стереоскопического блеска).
  • Если долго и сильно тыкать в ЖК-экран замусоленным пальцем, то можно сломать монитор, и гарантия на это не распространяется.

Поэтому мне кажется, что ЖК-монитор больше подходит для офиса (не забудьте про чёрный фон). Для дома, ИМХО лучше обычный монитор.

Почему ЖК мониторы раз и навсегда обречены на плохую цветопередачу?

Вспомним процесс формирования цвета (здесь и далее выражение “цвет” подразумевает правильность ОТТЕНКА т.е. наличие в нём заданного СООТНОШЕНИЯ R, G и B составляющих).

Итак, ЭЛТ: Цвет формируется RGB-триадами, излучающими свет самостоятельно, свечение которых появляется из-за преобразования энергии пучка электронов в видимый свет. Спектр свечения каждой отдельно взятой из трёх составляющих монохромен (не обладает побочными засветками, цвет не “размазан”, чист) и определяется лишь химсоставом вещества, из которого сделаны составляющие люминифора. Каждая фирма-производитель кинескопов держит свой удачный химсостав в секрете. Таким образом, в силу исходной чистоты составляющих, получаем чистый цвет максимально возможного диапазона, независимо от яркости и оттенка. (Что такое диапазон цвета – можете спросить у тех кто занимается полиграфией, для нас пока это менее важно чем остальное).

А теперь ЖК: Свет, исходящий от лампы с холодным катодом (или иного типа), проходит через матрицу, состоящую из ячеек светофильтров и собственно ЖК-заслонок, которые дозируют прохождение света от лампы через каждый из R, G и B светофильтров, формируя каждый из пикселей. Светофильтр не может обладать идеальным пропусканием цвета только нужной длины волны (из теории: если фильтр бесконечно сузить, количество прошедшей энергии будет стремиться к нулю). Поэтому, R, G и B составляющие каждого пикселя, даже отдельно взятые, принципиально не могут быть “чистыми” – все они имеют широкую полосу побочного свечения. То есть, невозможно получить ЧИСТЫЙ красный, зелёный или синий цвет. (хотя, близкий к белому – можно). Если ещё вспомнить, что спектр свечения лампы подсветки также далёк от солнечного, то получаем печальную картину… Цветопередача очень плохая. Однако производители конечно же пытаются это скорректировать методом калибровки мониторов на заводе (меняя функции передачи каждого из каналов), подводя по очереди цвета, наиболее часто встречающиеся в жизни, к их наиболее реалистичному виду. При этом, однако, совпадения достигнуть нельзя в силу вышеописанной неидеальности ЖК монитора. Возможно лишь приближение. Ну а самое плохое – что при калибровке диапазон воспроизводимого цвета, и без того ОЧЕНЬ плохой, ещё более сужается.

Как это увидеть?

Лучший способ – поставить рядом ЖК и ЭЛТ мониторы, запустить простую программу проверки чистоты цвета, и посмотреть самому (самой) 🙂

Что же делать?

Ну для игр, ввода текстов и черчения, цветопередача вовсе не важна по сравнению с другими параметрами. А вот использование ЖК панелей в типографиях или дизайн-студиях – показатель полного непонимания человеком, поставившим их туда, того что здесь написано. А может быть, даже и незнание понятия “цветовой диапазон”!

Ждите новой технологии – светодиодных матриц. Они, как и ЭЛТ, сами излучают свет (а не управляют его пропусканием). Теоретически, по цвету, они должны быть не хуже ЭЛТ.

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

Всё программное обеспечение должно быть переделано, и приведено к виду, безопасному для глаз – то есть, нам необходимо сделать везде тёмный/чёрный фон и светлый (белый, серый, зелёный, оранжевый) текст.

Так в чём проблема?

И вот тут, мы неминуемо врезаемся в подводную часть айсберга. Казалось бы, операционные системы имеют настраиваемые цветовые схемы, и достаточно создать (или использовать готовую) схему с неинвертированными цветами (а ведь для этого и были созданы пользовательские цветовые схемы)? К сожалению, подводные камни на нашем пути чрезвычайно остры и многообразны. Начиная примерно с эпохи Windows 3.1, и вплоть до переднего края – Ubuntu 12.04, нас постоянно преследуют разочарования. Потому что всегда, обязательно найдётся «кривое» место в критически важной программе, когда горе-программисты используют жёстко заданные цвета – белый вместо “System BG Colour” и чёрный вместо “System Text Colour”. Это приводит к выводу чёрным по чёрному, что вряд ли возможно прочесть. Примеры многочисленны, и обязательно будут перечислены здесь. (Уже перечислены, см., например, список багов ниже). Но есть и вторая группа подводных камней, а скорее, просто одна гигантская подводная скала. Это web.

Всё смешалось в современном мире, и с “лёгкой” руки создателей первых web-сайтов, инверсная схема пошла в массы. Величайшее преступление не только против здоровья, но и против самоей сути электронно-вычислительной техники, которая никогда не должна была стать аналогом полиграфической продукции, – которое стало возможным опять же благодаря бездумности создателей первых визуальных web-редакторов – все мы являемся ему вынужденными свидетелями. Вот оно: Web-сайты оформляют как печатную продукцию.

Eng. text.

 

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

Рис. 2.

Как не нужно делать веб-сайты. Перед нами листовка или флаер, но никак не web-страница.

 

Fig. 2.

This work is good looks for paper prints, printed ads, or so, but this is not a website. Newer do websites looks like paper printed stuff.

 

 

Настолько разные вещи теперь смешались, и пока, нет возможности коренным образом это изменить. Почему? Проблема в том, что  стандарт HTML не имеет флага «инверсная цветовая схема». Единственный бит, который мог бы изменить мир — но его нет. Конечно, можно было бы просто начать верстать правильно, светлым текстом по тёмному фону — но это пока слишком непривычно для большинства. Поэтому для переходного этапа необходимо введение в стандарт флага, который ОС сообщает браузеру — какая у пользователя цветовая схема. Ведь вариантов всего два — инверсная или нет. В каких-то случаях достаточно даже модификации только браузера — он сам сможет инвертировать цвета многих элементов. Но здесь имеются проблемы с изображениями (прежде всего, полноцветными, фотографическими) и иными элементами, например формулами в Википедии.

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

 

https://bugs.launchpad.net/ubuntu/+source/gtk2-engines/+bug/78661

https://bugs.launchpad.net/pidgin/+bug/298702

https://bugs.launchpad.net/ubuntu/+source/synaptic/+bug/651955

https://bugs.launchpad.net/ubuntu/+source/eog/+bug/669785

https://bugs.launchpad.net/gnome-app-install/+bug/173725

https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/712315

https://bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/709094 (рис. 3)

Example of wrong colors in Ubuntu

Рис. 3.

Типичный пример работы не слишком опытных программистов. Снимок сделан в тогда ещё существовшей официальной тёмной цветовой схеме (Darkroom).

 

Fig. 3.

A typical example of Linux screenshot, showing work of programmers who probable written for Windows before. Screenshot was made while standard Ubuntu pack was include one last useable dark theme – Darkroom; it was removed later, making reporting such bugs much harder, as these can’t be reproduced out-of-box now.

 

 

https://bugs.launchpad.net/ubuntu/+source/evince/+bug/659810

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5467

https://bugs.launchpad.net/ubuntu/+source/thunderbird/+bug/296240 (fixed?)

https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/651904 (may be fixed, but please read comments carefully).

https://bugs.launchpad.net/inkscape/+bug/169623 , но даже если этот баг будет устранён в том виде, в каком он описан, то всё равно сделано будет неправильно. А как нужно — я написал здесь http://www.inkscapeforum.com/viewtopic.php?f=29&t=12198 Тем не менее, даже если пока просто убить белый дефолтный фон, исправив баг — это очень большой прогресс.

http://stackoverflow.com/questions/120621/dark-color-scheme-for-eclipse – к сожалению, обсуждение закрыто, поэтому я не могу дописать туда единственное имеющееся действительно работающее решение, см. описание инвертирующего фильтра ниже.

http://forum.audacityteam.org/viewtopic.php?f=17&t=23200&start=0 – проблемы с audacity. Последний юзабельный аудиоредактор был cool96 – к сожалению запись в нём из-под wine уже не работает. Вообще, проблемы юзабилити приобретают всё более ужасающий характер.

(добавить из brainstorm ideas)

(добавить Thunderbird, но в V14.0 (ubuntu 11.04) баг воспроизвести не удаётся.)

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

Нетрудно видеть, что ни один из этих багов не только не исправлен, но их и никто не собирается исправлять. Большинством (если не всеми) мейнтейнеров они, вероятно, даже не считаются за баги, что в целом довольно странно, учитывая, якобы, Look-and-Feel направленность данной ОС (Ubuntu). Типичная отмазка — «покажите мне штатную цветовую схему, демонстрирующую данный баг» — не работает (точнее, отмазка-то, как раз, работает), так как последняя “тёмная” (неинверсная) цветовая схема, годная к ежедневному использованию, была удалена из дистрибутива в 2010 году. И, как мы теперь видим — она была удалена не случайно.

Разумеется, если бы у меня была хоть какая-то возможность устранить эти баги самому, я бы сделал это. Тем более, что все указанные баги устранить не только заведомо возможно, но и  (за исключением чёрного цвета текстового курсора) весьма легко, нужно только знать Си и ориентироваться в дереве исходников. К сожалению, за несколько десятков лет, я так и не смог выучить Си, а попутно, из-за этого не смог довести до конца два важных проекта, PCB (grids) и DVR на основе Gstreamer. Си – тяжёлый язык, без логики приемлемого уровня вложенности в исходных кодах, что делает переход на Си с Паскаля и Ассемблера затруднённым, если вообще возможным; а написание такого кода, который не только работает, но и может быть потом использован сообществом, ещё на порядок непонятнее. Поэтому ищу программиста (с нетрадиционными взглядами на жизнь).

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

Казалось бы, хуже некуда?

Нет, они всё-таки нашли способ сделать визуальное представление ещё более плохим! Одной из последних тенденций (начиная с 2011 г.) стало использование одновременно инверсных и обычных областей текста на одном экране! А также, что то же самое — использование как чёрных элементов (Ubuntu Dash, Unity, строка поиска — молодцы! Красиво и правильно сделано!), так и белых (браузер файлов, браузер Web, офисное ПО и др.) — в одной ОС, на одном экране.

Correct Ubuntu colors

Рис. 4.

Такое хорошее начало. И прозрачность сделана правильно. Ведь можете же делать как положено! Но тут ВНЕЗАПНО…

 

Fig. 4.

What’s a crystal cute design! Transparency also excellent! But only until we start to really use this OS…

 

Wrong default colors in Ubuntu 12.04

Рис. 5.

Наихудший случай – одновременно обычный и инверсный текст. Глаза плачут. Инверсия экрана здесь уже не поможет! Никогда так не делайте.

 

Fig. 5.

Worst possible case. Straight and inverse text is combined on one screen. The Inverse key (Super+N) is not helpful anymore! Your eyes are cry and teardrop. Never write any OS, software or web content in such manner.

 

Simulated via GIMP correct colors.

Рис. 6.

Как это должно быть*. Такого идеального результата, к сожалению, пока можно достигнуть только симуляцией в графическом редакторе.
________
*  «Должно быть» — обозначает не то, что вы обязаны использовать тёмную схему. Оно обозначает: “Раз уж у вас Unity, так пусть всё будет такое же, а именно — тёмное”.

 

Fig. 6.

How it should be* look. Can’t get in real life, so it is simulated picture.
_______
* «Should be» — means not “you should use dark theme always”. It means “If you use Unity, then other colors should conform to it (be dark)”

 
Кнопка инвертирования экрана, которая была одной из основных причин моего перехода с Windows на Ubuntu — теперь (рис. 5) бесполезна (ведь инвертированный текст станет обычным, и наоборот; и снова будет пёстрая смесь). И теперь глаза будут постоянно перестраиваться то под обычный, то под инверсный текст, — что хуже, чем просто когда всё инверсное: так как, теперь не помогает ни инверсия экрана, ни уменьшение яркости монитора / применение защитного экрана (защитной плёнки). Впрочем, эта хаотическая инверсность частично лечится пользовательской цветовой схемой; но её невозможно вылечить готовыми поставляемыми цветовыми схемами. Чем плоха пользовательская схема, вы уже знаете: с ней, невозможно зарепортить баги; ленивые программисты не будут устанавливать у себя вашу цветовую схему, чтобы воспроизвести баг.

Какие ещё есть проблемы?

Чёрный фон непригоден для печати. Поэтому каждый правильный web-сайт должен иметь специальную версию для печати для каждой из страниц / статей, где будут использоваться какие положено шрифты, а именно, типографские (векторные) шрифты; инвертирован цвет текста, формул, графиков, таблиц и чертежей; а вид полноцветных изображений, как нетрудно понять, должен быть сохранён. Понятно, что для самих web-страниц, шрифты должны быть только растровые, и их набор кеглей (размеров) должен быть строго ограничен. На первом этапе, до того как людьми будет понято, что для корректного отображения на матричных дисплеях современных ЭВМ подходят только растровые шрифты, можно их генерировать самому из имеющихся векторных (ttf), с последующим пиксельным редактированием каждого полученного кегля (набора символов одного размера), для улучшения читаемости. Более того, под каждую новую разрешающую способность устройства матричного видеоотображения, я рекомендую перегенерировать шрифты заново, с целью, опять же, их последующего ручного редактирования.

Алгоритмическая (машинная) программа не может проделать хинтинг (hinting, “попадание”) и (если необходимо) антиалиасинг (anti-aliasing, сглаживание) идеально, так как в программу тяжело заложить понятие красоты. Поэтому для часто используемых машинных шрифтов, гарнитуры и кегли которых строго ограничены, – например, для web-шрифтов, – отображение глифов (букв) должно формироваться человеком.

Машинным шрифтам будет посвящена специальная статья.

Что делать с не-Gnome приложениями?

Существует ряд незаменимых программ, которые не являются контролируемыми ОС с точки зрения раскраски интерфейса. Таковыми программами, например, являются:

  1. система автоматизированного проектирования (САПР) QCAD;
  2. Xilinx Webpack ISE — комплекс ПО для разработки и разводки прошивок ПЛИС (бесплатная версия).

При написании этих программ, как минимум, Xilinx Webpack, были преднамеренно приняты меры к некорректному отображению цветов*: Отчёт о компиляции в Webpack предоставляется в HTML-формате, цвета которого невозможно изменить, и его невозможно “выпилить” с основного экрана в отдельное окно. Поэтому не нужно говорить о том, что, дескать, цвета-то настраиваются, особенно цвет фона — в обеих программах, причём, последний — посредством настройки ПО, а не ОС. Это никак не поможет! Потому что остаются неконтролируемые элементы.
__________
* Вообще, что касается этой конкретной программы, то ухудшения по сравнению с версией 15-летней давности носят ужасающий характер, вплоть до невозможности использования более нескольких минут подряд без постоянных чертыханий. Ужасающие неменяемые шрифты, их размер, масштабирование, схемный редактор, горячие клавиши, Но всем по{censored}. Подробнее см.:
http://forums.xilinx.com/t5/Design-Entry/LogiBLOX/td-p/44610/page/2
Проблемам с Webpack ISE будет посвящена отдельная статья. И да, она уже есть!

Существует частично работающее средство борьбы — qtconfig, которое не помогает до конца в Webpack, по этой же причине.

Необходимо другое решение.

Если в используемых программах нет полноцветных изображений (как например в браузере), то нам полностью помочь может инверсия (Super+N).

К великому счастью, эта функция работает почти адекватно на протяжении около десятка версий Ubuntu, включая последнюю. Имеются два недостатка:

  • не включается автоматически;
  • инвертирует по принципу RGB-инверсии.

Второй недостаток приводит к нарушению цветов окрашенных элементов интерфейса (значки и пр.), что со временем стало надоедать, да и вообще это вряд ли красиво. Но, к счастью, есть люди кроме меня, которые над этой проблемой тоже задумались! Эта эпическая статья находится тут: http://ubuntuforums.org/showthread.php?t=1419702 . Суть этого изобретения заключается в первой реально работающей попытке инвертировать светотень без изменения цветовой составляющей. Я доработал указанный фильтр, представив миру первый реально работающий инвертирующий фильтр, полностью пригодный для постоянного многочасового использования (но имеются небольшие проблемы с полутонами) — читать здесь http://ubuntuforums.org/showpost.php?p=12076874&postcount=18 . Сам код представлен ниже:


!!ARBfp1.0
TEMP temp, lightness, diff, cmin, cmax;
TEX temp, fragment.texcoord[0], texture[0], RECT;
MOV cmin, temp.r;
MIN cmin, cmin, temp.g;
MIN cmin, cmin, temp.b;
MOV cmax, temp.r;
MAX cmax, cmax, temp.g;
MAX cmax, cmax, temp.b;
ADD lightness, cmin, cmax;
ADD diff, -lightness, 1.0;
ADD_SAT temp.r, temp.r, diff;
ADD_SAT temp.g, temp.g, diff;
ADD_SAT temp.b, temp.b, diff;
MUL temp, fragment.color, temp;
MOV result.color, temp;
END

(Редактор вордпресса - это просто отъявленный пи***ц. Дальше - всё разъебхалось. Но в вики нет колонок. Что делать?!)

!!ARBfp1.0 # Compiz Color Filter, negative but preserve colors v0.1 # Based on various ideas and examples. # author of portions: jopka1@gmail.com, www.bdyssh.ru # (select 'Ruby' in `gedit` for proper text highlight and show of keywords and comments) TEMP temp, lightness, diff, saturation, delta, grayness; TEX temp, fragment.texcoord[0], texture[0], RECT; # saturation 0...1 - show how rich the colour. # i calculate it as max difference between r, g, b parts of colour. # it is linear operation, so it's incorrect for half-tones, see HSL color model. # grayness = 1 - saturation. (it is 'anti-saturation'). MOV saturation, 0; SUB delta, temp.r, temp.g; MAX saturation, saturation, delta; SUB delta, temp.g, temp.r; MAX saturation, saturation, delta; SUB delta, temp.r, temp.b; MAX saturation, saturation, delta; SUB delta, temp.b, temp.r; MAX saturation, saturation, delta; SUB delta, temp.g, temp.b; MAX saturation, saturation, delta; SUB delta, temp.b, temp.g; MAX saturation, saturation, delta; # simple method used... Not sure if it is precisely correct. MUL lightness, temp.r, 0.333; MAD lightness, temp.g, 0.333, lightness; MAD lightness, temp.b, 0.333, lightness; # -0.5 to 0.5 range and inverse ADD lightness, -lightness, 0.5; # -1 to 1 range MUL lightness, lightness, 2.0; # inverse slope - calculate grayness, 1 = not coloured pixel, 0 = full saturation SUB grayness, 1, saturation; # here we invert pixels, and amount of inversion is inverse relative of saturation. # so, black colour become white, white turns to black, but red remains red. MUL diff, lightness, grayness; ADD_SAT temp.r, temp.r, diff; ADD_SAT temp.g, temp.g, diff; ADD_SAT temp.b, temp.b, diff; MUL temp, fragment.color, temp; MOV result.color, temp; END См. также: https://bugs.launchpad.net/ubuntu/+source/evince/+bug/659810

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


Xiling Webpack ISE with inverse video filter.

Рис. 7. Результат работы фильтра. Обратите внимание на цвета иконок. Осталось исправить кошмарный рендеринг шрифтов, и можно спокойно работать десятилетиями.  
Fig. 7. Video filter in work. Look at proper coloring of icons. But it can’t fix wrong font rendering in QT app. This must be fixed separately. Then we get application suitable for prolonged continuous work without affecting health of eyes.  
 

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

TODO: Add about Ubuntu 12.10:
[CODE]
// read more at http://ubuntuforums.org/showthread.php?t=1419702&page=2
// was: Compiz Color Filter, negative but preserve colors v0.1
// Based on various ideas and examples.
// author of portions: jopka1@gmail.com, www.bdyssh.ru
static std::string fragment_function =
	"void neg_fragment () {; \n"
	"float lightness; \n"
	"float diff; \n"
	"float saturation; \n"
	"float delta; \n"
	"float grayness; \n"
	"vec3 temp; \n"
// saturation 0...1 - show how rich the colour.
// i calculate it as max difference between r, g, b parts of colour.
// it is linear operation, so it's incorrect for half-tones, see HSL color model.
// grayness = 1 - saturation. (it is 'anti-saturation').
	"saturation = 0.0; \n"
	"delta = abs (gl_FragColor.r - gl_FragColor.g); \n"
	"saturation = max (delta, saturation); \n"
	"delta = abs (gl_FragColor.r - gl_FragColor.b); \n"
	"saturation = max (delta, saturation); \n"
	"delta = abs (gl_FragColor.g - gl_FragColor.b); \n"
	"saturation = max (delta, saturation); \n"
// simple method used... Not sure if it is precisely correct.
	"lightness = gl_FragColor.r * 0.333 + gl_FragColor.g * 0.333 + gl_FragColor.b * 0.333; \n"
// # -0.5 to 0.5 range and inverse
	"lightness = 0.0 - lightness + 0.5 ; \n"
// -1 to 1 range
	"lightness = lightness * 2.0 ; \n"
// inverse slope - calculate grayness, 1 = not coloured pixel, 0 = full saturation
	"grayness = 1.0 - saturation; \n"
// here we invert pixels, and amount of inversion is inverse proportional of saturation.
// so, black colour become white, white turns to black, but red remains red.
	"diff = lightness * grayness; \n"
// WARNING. Originally ADD_SAT instead of ADD used.
// but i don't know its equivalent for fragment function,
// to prevent values run out of 0...1 boundaries. So just add (`plus`) functions used.
	"temp = vec3(gl_FragColor.r + diff, gl_FragColor.g + diff, gl_FragColor.b + diff); \n"
	"gl_FragColor = vec4(temp, gl_FragColor.a); \n"
	"} \n"
;
[/CODE]

ыыы

Keywords: black, white, dark, scheme, theme, windows, linux, ubuntu, text, background, BG, FG, inverted, unreadable, incorrect, ccsm, compiz, color, filter, inversion, RGB, icons, hue, bug, ubuntuforums, eyes, health, PC, computer, coninuous, work, default, darklooks, darkroom, dark room, environment, adwaita, studio, gray, illegible, text, cursor, invisible, look and feel, usability, user friendly, interface, xilinx, foundation, webpack, ise, text, color, size, zoom, zooming, schematic, editor,
кккккк
еееее

Продолжение следует!

English text.
 

---
Продолжайте здесь