Склероз.

Че то стал одолевать склероз. Поэтому оставлю заметку для себя.
Артур, запомни, если ставишь sendmail на пустой сервер, обязательно поставь пакет cyrus-sasl-plain. И все у тебя будет хорошо. И сохранишь себе пару месяцев здоровья.

Так вот откуда они взялись!

Урок о сокращениях.

Это примерный пересказ поста Роба Пайка в его Г+. Я плохой переводчик, поэтому никогда не называют такие тексты «переводом»
Давным давно, когда был разработан дизайн файловой системы Unix, были придуманы записи . и .., для облегчения навигации. Я не уверен, но кажется .. появился при переписывании Версии 2, когда в файловой системе появилась иерархия (до этого структура была совсем другой). Когда кто-то набирал ls эти записи показывались на экране, поэтому Кен или Деннис добавили простую проверку в программу. Тогда всё писалось на ассемблере, но код был примерно эквивалентен чему-то вроде этого:
if (name[0] == '.') continue
Этот код был слегка короче, чем должен, потому что правильно было написать
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue
но блин, это же было проще.
Результатом были две вещи.
Во-первых, был создан неприятный прецедент. Толпы других ленивых программистов порождали баги, используя то же самое упрощение. Настоящие файлы начинающиеся со знака точки часто пропускались, даже в тех случаях, когда должны были быть учтены.
Во-вторых, и это намного хуже, появилась идея «скрытых» файлов или «файлов с точкой». Как следствие, толпы других ленивых программистов1 стали разбрасывать файлы в домашних каталогах. У меня не так много всего установлено на машине, в которую я сейчас набираю этот текст, но мой домашний каталог содержит около сотни файлов с точкой, и я даже не знаю, что в большинстве из них и нужны ли они вообще. И каждое дополнительное имя файла в домашней папке замедляет работу машины, пусть не намного, но это же накапливается.
Я совершенно уверен, что концепция скрытых файлов была непреднамеренной оплошностью. Это просто была ошибка.
К какому количеству багов, потраченных циклов CPU и случаев человеческого разочарования (не говоря уже о плохом дизайне) привело одно маленькое упущение, случившееся 40 лет назад.
Задумайтесь об этом в следующий раз, когда захотите «срезать угол» в вашем коде.
(Я не спорю с теми, кто говорит, что скрытые файлы служат определенной цели, но это цели служат файлы, а не соглашение об их наименовании. Их легко можно было складывать в $HOME/cfg или в $HOME/lib, как мы и сделали в Plan 9, где нет файлов с точкой. Выводы были сделаны)
Роб Пайк. 3 августа 2012.

Перевод взят тут.

Инструкция.

Сегодня меня метро порадовало. Вобщем все как обычно: еду, стою, сплю. Передо мной сидит тетечка, такая вся богомольная (худая, болезненно бледная, такая никакая), читает брошюрку. Глаз цепляется за название главы: Рай.
Интересно, фокусирую зрение (правда без очков трудно получается) 🙂 Глава начинается со слов: «Когда вы попали в рай, надо помнить о том, что….» Ухтышка какая. Я еще больше просыпаюсь 🙂
Фокусирую зрение вверху страницы, где обычно печатают название книги. Название меня окончательно проснуло: Инструкция для бессмертных!!!
Все, настроение поднялось, я готов к работе 🙂

Толстый клиент 1С 8.3

Вообщем толстый клиент 1С 8.3 удалось запустить под linux. Но с бубном поплясал от души.
На RedHat и производные установить не удалось.
На Ubuntu LTS 12.04, после допиливания его напильником все встало.

Тепереча бум пробовать его в работе

roundcube — LDAP(AD) — фотография контактов

Сразу оговорюсь, у нас в AD включена поддержка unix services for windows. (кстати, очень сильно облегчает интеграцию с Linux машинами, без поднятия Samba&winbind).

Адресная книга, полученная из LDAP в roundcube интегрируется легко. Достаточно посмотреть закомментированный пример в конфигурационном файле. Но вот про получение фотографии из LDAP в конфиге примеров нет 🙁

Эта проблема решается следующим образом. Предположим что в LDAP за фото отвечает атрибут jpegPhoto. (хотя в AD есть еще и thumbnailPhoto)

В main.inc.php пишем:

‘fieldmap’ => array(
// Roundcube  => LDAP
‘photo’ => ‘jpegPhoto’,
),

Разумеется, вместо … подразумеваются строки с другими параметрами.

З.Ы. А вот как брать фото в thunderbird я так и не нашел :(пичалька):

Microtik и VLAN

Столкнулся с проблемой, настраиваю VLAN а они не работают 🙁 Причина была в slave интерфейсах.

interface ethernet print

Смотрим, что бы в столбце MASTER-PORT было значение none. Если там находится имя интерфейса, то нужно у этих интерфейсов установить его на none:

interface ethernet set ether3,ether4,ether5 master-port=none

Скобочки, кавычки :)

Тока сегодня понял для чего в шел скрипте есть два варианта запуска внешней программы: « и $()
`prog -p `param 1, param2` | prog 3`

Будет ругаться. А вот так нет:

$(prog -p `param 1, param2` | prog 3)
Век живи, век учись 🙂

shared folder in dovecot

Никогда бы не подумал, что расшаривание INBOX пользователя в режиме ro другим  пользователям в довекоте сделано через такую #ОПУ!
Пришлось сильно выкручиваться, что бы эту папку увидели Thunderbird и Roundcube.

Чет MTT начинает напрягать.

Чет IP телефония от MTT козлит последнее время. Регулярные ошибки (ip код 500 и 480) и невозможность позвонить. Вообщем правильно я оставил проводной телефон от МГТС. Если МТТ и дальше будет себя так вести — придется отказаться от их услуг.