Страницы

2015-01-22

Мое совещание

Петров пришел во вторник на совещание. Ему там вынули мозг, разложили по блюдечкам и стали есть, причмокивая и вообще выражая всяческое одобрение. Начальник Петрова, Недозайцев, предусмотрительно раздал присутствующим десертные ложечки. И началось.
— Коллеги, — говорит Морковьева, — перед нашей организацией встала масштабная задача. Нам поступил на реализацию проект, в рамках которого нам требуется изобразить несколько красных линий. Вы готовы взвалить на себя эту задачу?
— Конечно, — говорит Недозайцев. Он директор, и всегда готов взвалить на себя проблему, которую придется нести кому-то из коллектива. Впрочем, он тут же уточняет: — Мы же это можем?
Начальник отдела рисования Сидоряхин торопливо кивает:
— Да, разумеется. Вот у нас как раз сидит Петров, он наш лучший специалист в области рисования красных линий. Мы его специально пригласили на совещание, чтобы он высказал свое компетентное мнение.
— Очень приятно, — говорит Морковьева. — Ну, меня вы все знаете. А это — Леночка, она специалист по дизайну в нашей организации.
Леночка покрывается краской и смущенно улыбается. Она недавно закончила экономический, и к дизайну имеет такое же отношение, как утконос к проектированию дирижаблей.
— Так вот, — говорит Морковьева. — Нам нужно нарисовать семь красных линий. Все они должны быть строго перпендикулярны, и кроме того, некоторые нужно нарисовать зеленым цветом, а еще некоторые — прозрачным. Как вы считаете, это реально?
— Нет, — говорит Петров.
— Давайте не будем торопиться с ответом, Петров, — говорит Сидоряхин. — Задача поставлена, и ее нужно решить. Вы же профессионал, Петров. Не давайте нам повода считать, что вы не профессионал.
— Видите ли, — объясняет Петров, — термин «красная линия» подразумевает, что цвет линии — красный. Нарисовать красную линию зеленым цветом не то, чтобы невозможно, но очень близко к невозможному…
— Петров, ну что значит «невозможно»? — спрашивает Сидоряхин.
— Я просто обрисовываю ситуацию. Возможно, есть люди, страдающие дальтонизмом, для которых действительно не будет иметь значения цвет линии, но я не уверен, что целевая аудитория вашего проекта состоит исключительно из таких людей.
— То есть, в принципе, это возможно, мы правильно вас понимаем, Петров? — спрашивает Морковьева.
Петров осознает, что переборщил с образностью.
— Скажем проще, — говорит он. — Линию, как таковую, можно нарисовать совершенно любым цветом. Но чтобы получилась красная линия, следует использовать только красный цвет.
— Петров, вы нас не путайте, пожалуйста. Только что вы говорили, что это возможно.
Петров молча проклинает свою болтливость.
— Нет, вы неправильно меня поняли. Я хотел лишь сказать, что в некоторых, крайне редких ситуациях, цвет линии не будет иметь значения, но даже и тогда — линия все равно не будет красной. Понимаете, она красной не будет! Она будет зеленой. А вам нужна красная.
Наступает непродолжительное молчание, в котором отчетливо слышится тихое напряженное гудение синапсов.
— А что если, — осененный идеей, произносит Недозайцев, — нарисовать их синим цветом?
— Все равно не получится, — качает головой Петров. — Если нарисовать синим — получатся синие линии.
Опять молчание. На этот раз его прерывает сам Петров.
— И я еще не понял… Что вы имели в виду, когда говорили о линиях прозрачного цвета?
Морковьева смотрит на него снисходительно, как добрая учительница на отстающего ученика.
— Ну, как вам объяснить?.. Петров, вы разве не знаете, что такое «прозрачный»?
— Знаю.
— И что такое «красная линия», надеюсь, вам тоже не надо объяснять?
— Нет, не надо.
— Ну вот. Вы нарисуйте нам красные линии прозрачным цветом.
Петров на секунду замирает, обдумывая ситуацию.
— И как должен выглядеть результат, будьте добры, опишите пожалуйста? Как вы себе это представляете?
— Ну-у-у, Петро-о-ов! — говорит Сидоряхин. — Ну давайте не будем… У нас что, детский сад? Кто здесь специалист по красным линиям, Морковьева или вы?
— Я просто пытаюсь прояснить для себя детали задания…
— Ну, а что тут непонятного-то?.. — встревает в разговор Недозайцев. — Вы же знаете, что такое красная линия?
— Да, но…
— И что такое «прозрачный», вам тоже ясно?
— Разумеется, но…
— Так что вам объяснять-то? Петров, ну давайте не будем опускаться до непродуктивных споров. Задача поставлена, задача ясная и четкая. Если у вас есть конкретные вопросы, так задавайте.
— Вы же профессионал, — добавляет Сидоряхин.
— Ладно, — сдается Петров. — Бог с ним, с цветом. Но у вас там еще что-то с перпендикулярностью?..
— Да, — с готовностью подтверждает Морковьева. — Семь линий, все строго перпендикулярны.
— Перпендикулярны чему? — уточняет Петров.
Морковьева начинает просматривать свои бумаги.
— Э-э-э, — говорит она наконец. — Ну, как бы… Всему. Между собой. Ну, или как там… Я не знаю. Я думала, это вы знаете, какие бывают перпендикулярные линии, — наконец находится она.
— Да конечно знает, — взмахивает руками Сидоряхин. — Профессионалы мы тут, или не профессионалы?..
— Перпендикулярны могут быть две линии, — терпеливо объясняет Петров. — Все семь одновременно не могут быть перпендикулярными по отношению друг к другу. Это геометрия, 6 класс.
Морковьева встряхивает головой, отгоняя замаячивший призрак давно забытого школьного образования. Недозайцев хлопает ладонью по столу:
— Петров, давайте без вот этого: «6 класс, 6 класс». Давайте будем взаимно вежливы. Не будем делать намеков и скатываться до оскорблений. Давайте поддерживать конструктивный диалог. Здесь же не идиоты собрались.
— Я тоже так считаю, — говорит Сидоряхин.
Петров придвигает к себе листок бумаги.
— Хорошо, — говорит он. — Давайте, я вам нарисую. Вот линия. Так?
Морковьева утвердительно кивает головой.
— Рисуем другую… — говорит Петров. — Она перпендикулярна первой?
— Ну-у…
— Да, она перпендикулярна.
— Ну вот видите! — радостно восклицает Морковьева.
— Подождите, это еще не все. Теперь рисуем третью… Она перпендикулярна первой линии?..
Вдумчивое молчание. Не дождавшись ответа, Петров отвечает сам:
— Да, первой линии она перпендикулярна. Но со второй линией она не пересекается. Со второй линией они параллельны.
Наступает тишина. Потом Морковьева встает со своего места и, обогнув стол, заходит Петрову с тыла, заглядывая ему через плечо.
— Ну… — неуверенно произносит она. — Наверное, да.
— Вот в этом и дело, — говорит Петров, стремясь закрепить достигнутый успех. — Пока линий две, они могут быть перпендикулярны. Как только их становится больше…
— А можно мне ручку? — просит Морковьева.
Петров отдает ручку. Морковьева осторожно проводит несколько неуверенных линий.
— А если так?..
Петров вздыхает.
— Это называется треугольник. Нет, это не перпендикулярные линии. К тому же их три, а не семь.
Морковьева поджимает губы.
— А почему они синие? — вдруг спрашивает Недозайцев.
— Да, кстати, — поддерживает Сидоряхин. — Сам хотел спросить.
Петров несколько раз моргает, разглядывая рисунок.
— У меня ручка синяя, — наконец говорит он. — Я же просто чтобы продемонстрировать…
— Ну, так может, в этом и дело? — нетерпеливо перебивает его Недозайцев тоном человека, который только что разобрался в сложной концепции и спешит поделиться ею с окружающими, пока мысль не потеряна. — У вас линии синие. Вы нарисуйте красные, и давайте посмотрим, что получится.
— Получится то же самое, — уверенно говорит Петров.
— Ну, как то же самое? — говорит Недозайцев. — Как вы можете быть уверены, если вы даже не попробовали? Вы нарисуйте красные, и посмотрим.
— У меня нет красной ручки с собой, — признается Петров. — Но я могу совершенно…
— А что же вы не подготовились, — укоризненно говорит Сидоряхин. — Знали же, что будет собрание…
— Я абсолютно точно могу вам сказать, — в отчаянии говорит Петров, — что красным цветом получится точно то же самое.
— Вы же сами нам в прошлый раз говорили, — парирует Сидоряхин, — что рисовать красные линии нужно красным цветом. Вот, я записал себе даже. А сами рисуете их синей ручкой. Это что, красные линии по-вашему?
— Кстати, да, — замечает Недозайцев. — Я же еще спрашивал вас про синий цвет. Что вы мне ответили?
Петрова внезапно спасает Леночка, с интересом изучающая его рисунок со своего места.
— Мне кажется, я понимаю, — говорит она. — Вы же сейчас не о цвете говорите, да? Это у вас про вот эту, как вы ее называете? Перпер-чего-то-там?
— Перпендикулярность линий, да, — благодарно отзывается Петров. — Она с цветом линий никак не связана.
— Все, вы меня запутали окончательно, — говорит Недозайцев, переводя взгляд с одного участника собрания на другого. — Так у нас с чем проблемы? С цветом или с перпендикулярностью?
Морковьева издает растерянные звуки и качает головой. Она тоже запуталась.
— И с тем, и с другим, — тихо говорит Петров.
— Я ничего не могу понять, — говорит Недозайцев, разглядывая свои сцепленные в замок пальцы. — Вот есть задача. Нужно всего-то семь красных линий. Я понимаю, их было бы двадцать!.. Но тут-то всего семь. Задача простая. Наши заказчики хотят семь перпендикулярных линий. Верно?
Морковьева кивает.
— И Сидоряхин вот тоже не видит проблемы, — говорит Недозайцев. — Я прав, Сидоряхин?.. Ну вот. Так что нам мешает выполнить задачу?
— Геометрия, — со вздохом говорит Петров.
— Ну, вы просто не обращайте на нее внимания, вот и все! — произносит Морковьева.
Петров молчит, собираясь с мыслями. В его мозгу рождаются одна за другой красочные метафоры, которые позволили бы донести до окружающих сюрреализм происходящего, но как назло, все они, облекаясь в слова, начинаются неизменно словом «Блять!», совершенно неуместным в рамках деловой беседы.
Устав ждать ответа, Недозайцев произносит:
— Петров, вы ответьте просто — вы можете сделать или вы не можете? Я понимаю, что вы узкий специалист и не видите общей картины. Но это же несложно — нарисовать какие-то семь линий? Обсуждаем уже два часа какую-то ерунду, никак не можем прийти к решению.
— Да, — говорит Сидоряхин. — Вы вот только критикуете и говорите: «Невозможно! Невозможно!» Вы предложите нам свое решение проблемы! А то критиковать и дурак может, простите за выражение. Вы же профессионал!
Петров устало изрекает:
— Хорошо. Давайте я нарисую вам две гарантированно перпендикулярные красные линии, а остальные — прозрачным цветом. Они будут прозрачны, и их не будет видно, но я их нарисую. Вас это устроит?
— Нас это устроит? — оборачивается Морковьева к Леночке. — Да, нас устроит.
— Только еще хотя бы пару — зеленым цветом, — добавляет Леночка. — И еще у меня такой вопрос, можно?
— Да, — мертвым голосом разрешает Петров.
— Можно одну линию изобразить в виде котенка?
Петров молчит несколько секунд, а потом переспрашивает:
— Что?
— Ну, в виде котенка. Котеночка. Нашим пользователям нравятся зверюшки. Было бы очень здорово…
— Нет, — говорит Петров.
— А почему?
— Нет, я конечно могу нарисовать вам кота. Я не художник, но могу попытаться. Только это будет уже не линия. Это будет кот. Линия и кот — разные вещи.
— Котенок, — уточняет Морковьева. — Не кот, а котенок, такой маленький, симпатичный. Коты, они…
— Да все равно, — качает головой Петров.
— Совсем никак, да?.. — разочарованно спрашивает Леночка.
— Петров, вы хоть дослушали бы до конца, — раздраженно говорит Недозайцев. — Не дослушали, а уже говорите «Нет».
— Я понял мысль, — не поднимая взгляда от стола, говорит Петров. — Нарисовать линию в виде котенка невозможно.
— Ну и не надо тогда, — разрешает Леночка. — А птичку тоже не получится?
Петров молча поднимает на нее взгляд и Леночка все понимает.
— Ну и не надо тогда, — снова повторяет она.
Недозайцев хлопает ладонью по столу.
— Так на чем мы остановились? Что мы делаем?
— Семь красных линий, — говорит Морковьева. — Две красным цветом, и две зеленым, и остальные прозрачным. Да? Я же правильно поняла?
— Да, — подтверждает Сидоряхин прежде, чем Петров успевает открыть рот.
Недозайцев удовлетворенно кивает.
— Вот и отлично… Ну, тогда все, коллеги?.. Расходимся?.. Еще вопросы есть?..
— Ой, — вспоминает Леночка. — У нас еще есть красный воздушный шарик! Скажите, вы можете его надуть?
— Да, кстати, — говорит Морковьева. — Давайте это тоже сразу обсудим, чтобы два раза не собираться.
— Петров, — поворачивается Недозайцев к Петрову. — Мы это можем?
— А какое отношение ко мне имеет шарик? — удивленно спрашивает Петров.
— Он красный, — поясняет Леночка.
Петров тупо молчит, подрагивая кончиками пальцев.
— Петров, — нервно переспрашивает Недозайцев. — Так вы это можете или не можете? Простой же вопрос.
— Ну, — осторожно говорит Петров, — в принципе, я конечно могу, но…
— Хорошо, — кивает Недозайцев. — Съездите к ним, надуйте. Командировочные, если потребуется, выпишем.
— Завтра можно? — спрашивает Морковьева.
— Конечно, — отвечает Недозайцев. — Я думаю, проблем не будет… Ну, теперь у нас все?.. Отлично. Продуктивно поработали… Всем спасибо и до свидания!
Петров несколько раз моргает, чтобы вернуться в объективную реальность, потом встает и медленно бредет к выходу. У самого выхода Леночка догоняет его.
— А можно еще вас попросить? — краснея, говорит Леночка. — Вы когда шарик будете надувать… Вы можете надуть его в форме котенка?..
Петров вздыхает.
— Я все могу, — говорит он. — Я могу абсолютно все. Я профессионал.

Подсветка синтаксиса в nano и mc

Порой просто не хочется запускать Emacs для того чтобы просто посмотреть исходник на LISP. И раз уж я ССЗБ то пользовался для просмотра midnight-commander или nano. Никакой подсветки LISP там и в помине нет. Ну вот однажды и надоело мне сидеть у камина с бокалом кьянти и мечтать как бы кто сделал для меня это благо. Я закатал рукава и сделал так:
Для mc
1. В первую очередь нудно включить встроенный в mc редактор. Он уже имеет подсветку синтаксиса, но знает лишь пару десятков команд.
2. Заменим в файле /usr/share/mac/syntax/lisp.syntax на такое содержимое:
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-*0123456789

context default
    keyword whole apply yellow
    keyword whole and yellow
    keyword whole car yellow
    keyword whole caar yellow
    keyword whole cadr yellow
    keyword whole cdar yellow
    keyword whole cddr yellow
    keyword whole cdr yellow

    keyword whole close yellow
    keyword whole cond yellow
    keyword whole cons yellow
    keyword whole count yellow
    keyword whole defvar brightcyan
    keyword whole defstruct brightcyan
    keyword whole defun yellow
    keyword whole do yellow
    keyword whole eq yellow
    keyword whole eql yellow
    keyword whole equal yellow
    keyword whole eval yellow
    keyword whole format yellow
    keyword whole if yellow
    keyword whole let* yellow
    keyword whole let yellow
    keyword whole list yellow
    keyword whole load yellow
    keyword whole make-package yellow
    keyword whole mapcar yellow
    keyword whole not yellow
    keyword whole null yellow
    keyword whole numberp yellow
    keyword whole open yellow
    keyword whole or yellow
    keyword whole pprint yellow
    keyword whole prin1 yellow
    keyword whole princ yellow
    keyword whole print yellow
    keyword whole provide yellow
    keyword whole read yellow
    keyword whole require yellow
    keyword whole set yellow
    keyword whole setf yellow
    keyword whole setq yellow
    keyword whole slot-value yellow
    keyword whole sort yellow
    keyword whole stringp yellow
    keyword whole terpri yellow
    keyword whole write yellow
    keyword whole defmacro brightcyan
    keyword whole case yellow
    keyword whole progn yellow
    keyword whole when yellow 
    keyword whole loop yellow
    keyword whole unless yellow
    keyword whole with-output-to-string yellow
    keyword whole labels yellow
    keyword whole return-from yellow
    keyword whole handler-case yellow
    keyword whole defmethod yellow
    keyword whole eval-when yellow
    keyword whole declare yellow
    keyword whole with-open-file yellow
    keyword whole multiple-value-bind yellow
    keyword whole defclass brightcyan
    keyword whole with-standard-io-syntax yellow
    keyword whole getf yellow
    keyword whole mapcar yellow
    keyword whole remove-if-not yellow
    keyword whole dolist yellow
    keyword whole defparameter brightcyan
    keyword whole defgeneric yellow
    keyword whole consp yellow
    
    keyword whole lambda red
    keyword whole for red
    keyword whole nil brightred
    keyword whole t brightred
    keyword whole in-package brightred
    keyword whole defpackage brightred
    keyword whole error brightred

    keyword #' brightmagenta
    keyword ' brightmagenta
    keyword , brightmagenta

    keyword ( brightcyan
    keyword ) brightcyan

# Keyword declarations and keywords

    keyword :\[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-*0123456789\] white
    keyword &\[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-*0123456789\] brightgreen

# Comments

context ; \n brown

# Strings

#context \* \* brightmagenta
context " " brightgreen
keyword \\" green
keyword \\\\ green

3. В итоге получим такую картинку

В mc редактор достаточно туповат, но умеет подсвечивать парные скобки. 

Но если вы как и я используете nano, то для вас путь особый! По умолчанию он вообще не знает о существовании Common-Lisp, по этому:

1. Создаем в /usr/share/nano/ файл описания подсветки синтаксиса
#touch /usr/share/nano/lisp.nanorc
2. В него вписываем такое содержимое:
## Here is an example for Common-Lisp.
## Adapted from http://cl-cad.blogspot.com
## (litetabs@gmail.com)
syntax "lisp" "\.lisp$"  "asd" "\.asd$"
color green "\<(defun|with-open-stream|format|setf|apply|and|car|caar|cadr|cdar|cddr|cdr|close|cond|cons|count|do|eql|equal|eval|if|let*|let|list|load|make-package|mapcar|not|null|numberp|open|or|pprint|prin1|princ|print|provide|read|require|setq|slot-value|sort|stringp|terpri|write|case|progn|when|loop|unless|with-output-to-string|labels|return-from|handler-case|eval-when|declare|with-open-file|multiple-value-bind|with-standard-io-syntax|getf|remove-if-not|dolist|consp)\>"
color red "\<(error|else|for|in-package|defpackage|defsystem|lambda)\>"
color cyan "\<(defclass|defstruct|defvar|defconstant|defmethod|defgeneric|defparameter)\>"
color brightred "\<(t|nil)\>"
icolor yellow "\:\{?[0-9A-Z_!@#$*?-]+\}?"
color brightgreen ""(\\.|[^"])*""
icolor blue "\*\{?[0-9A-Z_!@#$*?-]+\}?"
color cyan "(^|[[:space:]]);.*$"
3. Для того чтобы nano узнал о новом синтаксисе, открываем файл /etc/nanorc
#: nano /etc/nanorc
4. В самый конец вписывает строку:

## Common-Lisp files
include "/usr/share/nano/lisp.nanorc"

Теперь можно любоваться результатом


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

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

2015-01-21

Цвета HTML

Имена цветов в HTML

В спецификации HTML 4.01 [1] определены следующие 16 ключевых цветов (в данном контексте можно использовать как заглавные, так и строчные буквы):*
Цвет Код Цвет Код Цвет Код Цвет Код
aqua (морская волна) #00ffff black (чёрный) #000000 blue (синий) #0000ff fuchsia (фуксия) #ff00ff
gray (серый) #808080 green (зелёный) #008000 lime(лайм) #00ff00 maroon (тёмно-бордовый) #800000
navy (тёмно-синий) #000080 olive (оливковый) #808000 purple (пурпурный) #800080 red (красный) #ff0000
silver (серебряный) #c0c0c0 teal (сине-зелёный) #008080 white (белый) #ffffff yellow (жёлтый) #ffff00
^В спецификации используются английские названия цветов.

Безопасная палитра Netscape

В эпоху 256-цветных мониторов широко применялась так называемая «безопасная палитра Netscape» — однородная палитра 6×6×6. В truecolor у безопасных цветов все три компонента — R, G и B — равняются 00, 33, 66, 99, CCи FF. Браузер Netscape гарантировал, что эти цвета будут отображены без приближения или растрирования. Другими словами, 223 цвета стандартной 16-цветовой палитры и палитры 6×6×6 были наиболее предпочтительными для цвета изображения и фона.
К концу 90-х годов, с полным исчезновением 8-битного цвета с рабочих столов ОС, это требование исчезло. Тем не менее, Adobe Photoshop и поныне оснащён опцией «Только Web-цвета» (англ. Only Web Colors).

Названия цветов в X11

HTML имя К З С16 К З С10
Красные
IndianRed CD 5C 5C 205 92 92
LightCoral F0 80 80 240 128 128
Salmon FA 80 72 250 128 114
DarkSalmon E9 96 7A 233 150 122
LightSalmon FF A0 7A 255 160 122
Crimson DC 14 3C 220 20 60
Red FF 00 00 255 0 0
FireBrick B2 22 22 178 34 34
DarkRed 8B 00 00 139 0 0
Розовые
Pink FF C0 CB 255 192 203
LightPink FF B6 C1 255 182 193
HotPink FF 69 B4 255 105 180
DeepPink FF 14 93 255 20 147
MediumVioletRed C7 15 85 199 21 133
PaleVioletRed DB 70 93 219 112 147
Оранжевые
LightSalmon FF A0 7A 255 160 122
Coral FF 7F 50 255 127 80
Tomato FF 63 47 255 99 71
OrangeRed FF 45 00 255 69 0
DarkOrange FF 8C 00 255 140 0
Orange FF A5 00 255 165 0
Жёлтые
Gold FF D7 00 255 215 0
Yellow FF FF 00 255 255 0
LightYellow FF FF E0 255 255 224
LemonChiffon FF FA CD 255 250 205
LightGoldenrodYellow FA FA D2 250 250 210
PapayaWhip FF EF D5 255 239 213
Moccasin FF E4 B5 255 228 181
PeachPuff FF DA B9 255 218 185
PaleGoldenrod EE E8 AA 238 232 170
Khaki F0 E6 8C 240 230 140
DarkKhaki BD B7 6B 189 183 107
Фиолетовые
Lavender E6 E6 FA 230 230 250
Thistle D8 BF D8 216 191 216
Plum DD A0 DD 221 160 221
Violet EE 82 EE 238 130 238
Orchid DA 70 D6 218 112 214
Fuchsia FF 00 FF 255 0 255
Magenta FF 00 FF 255 0 255
MediumOrchid BA 55 D3 186 85 211
MediumPurple 93 70 DB 147 112 219
BlueViolet 8A 2B E2 138 43 226
DarkViolet 94 00 D3 148 0 211
DarkOrchid 99 32 CC 153 50 204
DarkMagenta 8B 00 8B 139 0 139
Purple 80 00 80 128 0 128
Indigo 4B 00 82 75 0 130
SlateBlue 6A 5A CD 106 90 205
DarkSlateBlue 48 3D 8B 72 61 139
HTML имя К З С16 К З С10
Зелёные
GreenYellow AD FF 2F 173 255 47
Chartreuse 7F FF 00 127 255 0
LawnGreen 7C FC 00 124 252 0
Lime 00 FF 00 0 255 0
LimeGreen 32 CD 32 50 205 50
PaleGreen 98 FB 98 152 251 152
LightGreen 90 EE 90 144 238 144
MediumSpringGreen 00 FA 9A 0 250 154
SpringGreen 00 FF 7F 0 255 127
MediumSeaGreen 3C B3 71 60 179 113
SeaGreen 2E 8B 57 46 139 87
ForestGreen 22 8B 22 34 139 34
Green 00 80 00 0 128 0
DarkGreen 00 64 00 0 100 0
YellowGreen 9A CD 32 154 205 50
OliveDrab 6B 8E 23 107 142 35
Olive 80 80 00 128 128 0
DarkOliveGreen 55 6B 2F 85 107 47
MediumAquamarine 66 CD AA 102 205 170
DarkSeaGreen 8F BC 8F 143 188 143
LightSeaGreen 20 B2 AA 32 178 170
DarkCyan 00 8B 8B 0 139 139
Teal 00 80 80 0 128 128
Синие
Aqua 00 FF FF 0 255 255
Cyan 00 FF FF 0 255 255
LightCyan E0 FF FF 224 255 255
PaleTurquoise AF EE EE 175 238 238
Aquamarine 7F FF D4 127 255 212
Turquoise 40 E0 D0 64 224 208
MediumTurquoise 48 D1 CC 72 209 204
DarkTurquoise 00 CE D1 0 206 209
CadetBlue 5F 9E A0 95 158 160
SteelBlue 46 82 B4 70 130 180
LightSteelBlue B0 C4 DE 176 196 222
PowderBlue B0 E0 E6 176 224 230
LightBlue AD D8 E6 173 216 230
SkyBlue 87 CE EB 135 206 235
LightSkyBlue 87 CE FA 135 206 250
DeepSkyBlue 00 BF FF 0 191 255
DodgerBlue 1E 90 FF 30 144 255
CornflowerBlue 64 95 ED 100 149 237
MediumSlateBlue 7B 68 EE 123 104 238
RoyalBlue 41 69 E1 65 105 225
Blue 00 00 FF 0 0 255
MediumBlue 00 00 CD 0 0 205
DarkBlue 00 00 8B 0 0 139
Navy 00 00 80 0 0 128
MidnightBlue 19 19 70 25 25 112
HTML имя К З С16 К З С10
Коричневые
Cornsilk FF F8 DC 255 248 220
BlanchedAlmond FF EB CD 255 235 205
Bisque FF E4 C4 255 228 196
NavajoWhite FF DE AD 255 222 173
Wheat F5 DE B3 245 222 179
BurlyWood DE B8 87 222 184 135
Tan D2 B4 8C 210 180 140
RosyBrown BC 8F 8F 188 143 143
SandyBrown F4 A4 60 244 164 96
Goldenrod DA A5 20 218 165 32
DarkGoldenrod B8 86 0B 184 134 11
Peru CD 85 3F 205 133 63
Chocolate D2 69 1E 210 105 30
SaddleBrown 8B 45 13 139 69 19
Sienna A0 52 2D 160 82 45
Brown A5 2A 2A 165 42 42
Maroon 80 00 00 128 0 0
Белые
White FF FF FF 255 255 255
Snow FF FA FA 255 250 250
Honeydew F0 FF F0 240 255 240
MintCream F5 FF FA 245 255 250
Azure F0 FF FF 240 255 255
AliceBlue F0 F8 FF 240 248 255
GhostWhite F8 F8 FF 248 248 255
WhiteSmoke F5 F5 F5 245 245 245
Seashell FF F5 EE 255 245 238
Beige F5 F5 DC 245 245 220
OldLace FD F5 E6 253 245 230
FloralWhite FF FA F0 255 250 240
Ivory FF FF F0 255 255 240
AntiqueWhite FA EB D7 250 235 215
Linen FA F0 E6 250 240 230
LavenderBlush FF F0 F5 255 240 245
MistyRose FF E4 E1 255 228 225
Серые
Gainsboro DC DC DC 220 220 220
LightGrey D3 D3 D3 211 211 211
Silver C0 C0 C0 192 192 192
DarkGray A9 A9 A9 169 169 169
Gray 80 80 80 128 128 128
DimGray 69 69 69 105 105 105
LightSlateGray 77 88 99 119 136 153
SlateGray 70 80 90 112 128 144
DarkSlateGray 2F 4F 4F 47 79 79
Black 00 00 00 0 0 0

Примечания

  1. HTML 4.01 Specification section 6.5 «Colors»

Ссылки

Список цветов, правильно отображаемые браузерами:
  1. Русскоязычный ресурс — http://www.artlebedev.ru/tools/colors/
  2. HTML Color Spectrum Chart — http://mysite.verizon.net/laurin99/colorchart.htm

Если бы водителей нанимали как сисадминов, то описание вакансии было бы примерно такое:

Вакансия: водитель.Требования:
  • Профессиональные навыки в управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулёра, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО.
  • Навыки раллийного и экстремального вождения обязательны.
  • Опыт управления болидами “Формулы 1″ – приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей.
  • Опыт проведения кузовных и окрасочных работ – приветствуется.
  • Претенденты должны иметь сертификаты Mercedes, BMW, General Motors, а также справки об участии в крупных международных соревнованиях не более, чем двухлетней давности.Зарплата: определяется по результатам собеседования.”

перенаправление на другой адрес

Перенаправление на другую страницу

Для редиректа с одной страницы на другую можно использовать .htaccess (поменялась структура)
Redirect 301 /content/about.php http://www.adidonntu.org.ua/content/about/index.php

Редирект из поддомена в каталог

Перенаправить запросы к поддоменам в каталоги на сервере http://sub.adidonntu.org.ua переделать в http://adidonntu.org.ua/sub.
RewriteCond %{HTTP_HOST} !^(www|ftp|mail)\.adidonntu\.org\.ua
RewriteCond %{HTTP_HOST} ^([^.]+)\.adidonntu\.org\.ua
RewriteRule (.*) /%1/$1 [L]

Перенаправление на другой домен

вариант для .htaccess
RewriteEngine On
RewriteRule ^(.*)$ http://www.adidonntu.org.us/$1 [R=301,L]
вариант для php
cat ./index.php
<?php header('Location: http://adi.donntu.edu.ua'); ?>
вариант для html
cat ./index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>titl</title>
<script type="text/javascript">
location.replace("http://www.adi.donntu.edu.ua/");
</script>
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://www.adi.donntu.edu.ua/">
</noscript>
</head>
<body>
</body>
</html>
http://wiki.dtulyakov.ru/rewrite_www
http://wiki.dtulyakov.ru/rewrite_301

Проброс USB контролера в Citrix XenServer для "1с"

Если вы ещё не успели вступить в каку под названием «1С 8» - подумайте пять раз прежде чем это делать!!!
Началось всё после очередного слёта (честно купленных) лицензионных ключей гавно-продукта «1с 8.2»
На запрос причины слётов и возможного решения 1с-ники ответили, что слетел ключ лицензий из за изменения частоты процессора:
вариант привязки защиты
CPU4, Intel64 Family 6 Model 45 Stepping 7, 64, 64, 2293, 0789FBFF000206D7, 11527, CPU 5
вариант почему слетела защита
CPU4, Intel64 Family 6 Model 45 Stepping 7, 64, 64, 2294, 0789FBFF000206D7, 11527, CPU 5
Но самое интересное дальше - 1с заявила, что они не собираются что либо делать и этоа проблема их особо не волнует, и порекомендовали при каждом слёте заказывать новый пин!
Отношение к этой гавно-конторе под названием «1с» у меня в край стало отрицательным если не сказать «враждебным», но уже деньги уплачены а работать как то надо. В связи с этим было найден один из вариантов решения этой проблемы. Как известно, что хардовые ключи не слетают (т.к. нечему там слетать) было решено попробовать пробросить их в ВМ. Но т.к. непонятно как себя поведёт этот самый ключ проброшенный в ВМ, я решил пробросить весь USB контролер.
Вот сам ход эксперемента: http://www.dtulyakov.ru/usb2xen.html

Рекомендую ознакомится со списком аналогов/конкурентов 1с хотя для некоторых 1с не конкурент


Каталог биллинговых систем

В статье собраны Интернет-ресурсы на биллинговые системы и системы учёта трафика, где используются решения на базе *nix и Windows. Если кому интересно - дополняйте статью новыми системами и описаниями.
Информация актуальна на 10 июня 2011г.
Abills
http://abills.net.ua/
Цена: Базовый функционал бесплатный. Оплачиваются только отдельные модули.
Движок: Perl-скрипты.
Краткое описание:
ABillS (~AsmodeuS~ Billing System) - недорогая и надежная конвергентная биллинговая система, предназначенная для учета и тарификации всего спектра услуг предоставляемых операторами связи (Dialup, VPN, Hotspot, VoIP, IPTV). Система является многофункциональной, модульной ACP (Автоматической Системой Расчётов) с открытым программным кодом, в последующем будет называться Биллингом.
Система ABillS обеспечивает комплексные возможности в реальном масштабе времени, значительную гибкость и масштабируемость для менеджмента и ускоренного внедрения услуг. Это позволяет оператору связи разрабатывать новые услуги, эффективно управлять тарифами, пользователями и осуществлять различные операции, необходимые для оперативного реагирования в ответ на изменяющиеся требования рынка и запросы потребителей
Подробнее: http://abills.net.ua/wiki/doku.php/abills:index
bgbilling
http://bgbilling.ru/
Цена: зависит от количества абонентов. Примерно 7тыс. руб за каждый модуль за каждые 60 абонентов. Тестовая версия на 50 "договоров" бесплатна.
Движок: Java (требует ActiveMQ). Для конфигурирования применяется кросс-платформенный java-клиент.
Продукт очень хорошо задокументирован. Ориентирован на средних и больших провайдеров.
Ubilling
http://ubilling.net.ua/
Цена: Бесплатный.
Движок: Ядро C/C++ - stargazer
Прост в установке. Обладает интуитивным веб-интерфейсом и гибкой модульной структурой.
MikBill by CelTeh
http://www.celteh.com/
Цена: 400$ (при использовании до 150 абонентов - бесплатен)
Движок: свой, php (требует Zend Optimizer)
Используется совместно с сервером доступа Mikrotik.
ExpertBilling
http://expertbilling.ru/
Цена: от 270$ (лицензия за минимум 250 абонентов). Тестовая версия на 50 абонентов бесплатна.
Движок: свой, Python, Django. Для конфигурирования применяется windows-клиент.
NetUP (UTM)
http://www.netup.ru/
Цена: UTM 5.0: Базовый модуль (без тех. поддержки) — 21000 руб.
Движок: perl, php
LANBilling
http://www.lanbilling.ru/
Цена: Платформа "Интернет" — 13500 руб.
Движок: perl, php
Распространён среди малых провайдеров, но его в рунете сообщество почему-то не хвалит, мотивируя постоянными доработками со стороны разработчиков. Поправьте если это не так.
Реквест-биллинг
http://requestbilling.com/
Цена: 50000 руб. компания предлагает услуги аутсорсинга
Движок: ??
Рассчитан для больших компаний
Тизона
http://www.tizona.ru/
Цена: > 1000$
Не развивается.
NetAMS
http://www.netams.com/
Просто система учёта трафика.
Stargazer
http://stargazer.dp.ua/
Цена: Бесплатный.
Движок: собственный C/C++ и windows-конфигуратор
Работает совместно с клиентской windows-программой.
SAMS
SQUID Account Management System
http://sams.perm.ru/
Цена: Бесплатный.
Движок: php-скрипты
Система учёта трафика и управления доступом пользователей к прокси серверу Squid. Не является биллинговой системой.
NoDeny
http://www.ukrindex.com/nodeny/info/description/
Цена: ?? в гривенах.
Движок: ??
Работает только для сетей с управляемыми коммутаторами.
CakeBilling
http://code.google.com/p/cakebilling/
Цена: Бесплатный
Движок: ядро целиком собрано на связке PostgreSQL + RADIUS Server. Для web-интерфейса используется java.
Проект заморожен, но само решение пользуется популярностью.
FreeNIBS
http://stasoft.net/
http://sourceforge.net/projects/nibs/
Судя по дате последнего релиза на sourceforge - проект заморожен. Если зайти на сайт поддержки, то компания выпускает различные программные продукты для работы в сети.
Katrin
http://katrin.distance.ru/
Проект скорее для изучения биллинговых систем.
Bee
http://www.oganer.net/bee/
Старенькая система для BSD
Napix
http://code.google.com/p/napix/
Цена: Бесплатный
Решение только для подсчёта трафика по ip.
Pyzzle
http://www.pyzzle.ru/
Цена: от 50000 руб.
Движок: ??
Для крупных провайдеров
Сатурн
http://istat.altay.ru/
Цена: от 15000 у.е
Движок:??
Onlinebilling
http://onlinebilling.ru/
Цена: ??
Движок: ??
Нечто большое, использует Oracle
Биллинговые системы от "Т-Софт"
http://www.tsoft.ru/
Корпоративный уровень
Phonekeeper от T-SOFT
http://www.phonekeeper.ru/
Движок: ??
Цена:??
Работает только на Windows-платформах
СиБОСС
http://www.cboss.ru/
Корпоративный уровень
Ideco
http://www.ideco-software.ru/
Движок: ??
Предлагает готовые решения на базе Linux
Цена: "АСР Ideco 3" до 199 пользователей бесплатно. >=200 - цена от 35800руб.
Билл-мастер
http://www.bill-master.ru/
Движок: ??
Корпоративный уровень
ABACS
http://www.abacs.ru/
Движок: ??
Цена:?? Корпоративный уровень
BISP
http://www.billing.kiev.ua/
Движок: ??
Цена:??
Проект заморожен
АСР "Ольга" от ИНТЕНТ
http://www.unipaid.ru/
Движок: ??
Цена:??
Корпоративный уровень
Traffic Inspector от SMART-SOFT
http://www.smart-soft.ru/
Движок: ??
Цена: зависит от количества учётных записей - от 3800руб. за 5 записей до 52900руб. за неограниченное количество записей.
Работает только на Windows-платформах
Фастком от ИНТЕНТ
http://www.fastcom.su/
Движок: ??
Цена:??
Корпоративный уровень
ТMeter
http://tmeter.ru/
Движок: ??
Цена:??
Работает только на Windows-платформах
FreeSide
http://www.freeside.biz/freeside/
Движок: ??
Цена:??
Lan2Net Firewall
http://www.lan2net.ru/
Движок: ??
Цена: от 1000руб. за 3 пользователя до 47000 руб. за неограниченное количество пользователей.
Работает только на Windows-платформах
VPNMS
http://vpnms.org/
Движок: своё
Цена: бесплатно
TraffPro
http://www.traffpro.ru/
Движок:??
Цена: зависит от количества учётных записей - от 3000руб до 25000руб.
АСР "Гидра"
http://www.hydra-billing.ru/
Движок:??
Цена: от 300 тыс. руб
Корпоративный уровень

Открытые системы на портале SourceForge.net

На портале можно найти довольно много самых разнообразных проектов. Не смотря на это, активных проектов очень мало. Для этого каталога проекты выбирались по востребованности (количеству скачиваний) и последней дате обновления.
http://www.jbilling.com/ — для любых задач, корпоративный уровень
http://cyber-billing.sourceforge.net/ — для интернет кафе
http://easyhotspot.inov.asia/ — красивая но не очень понятная штука
https://sf.net/apps/trac/hotcakes/wiki/WikiStart — для HotSpot`ов
http://ibs.sourceforge.net/ — интересная штука
источник