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

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

Это примерный пересказ поста Роба Пайка в его Г+. Я плохой переводчик, поэтому никогда не называют такие тексты «переводом»
Давным давно, когда был разработан дизайн файловой системы 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.

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

Инструкция.

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

Два пароля у учетной записи… Чудеса Windows

Коллега выложил видео. Смотреть тут: http://video.lisa-alisa.ru/password2.html

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

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

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

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

Прогулка за батоном.

Ну что ж, как говорит автор: если у вас свадьба — заявите о мероприятии и вас будут сопровождать сотрудники полиции.

P.S. надеюсь в дальнейшем ссылку на это видео не признают как ссылку на экстремистский материал, а то могу попасть на большие бабки 🙂

Замечательный комментарий к очередной статье, вышедшей из под пера сострудника кадрового агентства

Комментарий (с) Evgeniy Kuznetsov, к статье. Взято из FB
1. Почему вы выбрали именно нашу компанию?
— Вы идиот? Я направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.

2. Как вы считаете, почему мы должны выбрать именно вас?
— Вам работники вообще нужны? Ну вот он я. Работник. Именно меня стоит выбрать хотя бы потому, что я явно умнее всех тех, кто заливал на эти вопросы стандартную чушь. И умнее вас, между прочим, потому что я никогда таких дурацких вопросов бы не задал.

3. Какую зарплату вы хотели бы получать?
— 2,5 млн. $ в год, как президент США. Что за вопрос? Естественно, я хочу получать настолько высокую зарплату, насколько вы сможете мне заплатить. Только ведь вы всё равно не заплатите. Тогда нечего и выпендриваться. Всё равно выбор за мной: вы говорите цену, я говорю — согласен или нет.

4. Почему вы ушли с предыдущего места работы?
— Предположим, отвечу честно: маленькая зарплата или отсутствие карьерного роста, или бесперспективность, или не сошелся с коллективом, или не понравился собаке начальника. И что? Вы же не знаете, сойдусь ли я с вашим начальником, коллективом и их собакой. И не узнаете, пока не попробуете.

5. Кем вы видите себя через 5 лет в нашей компании?
— Вот вам встречный вопрос: какие планы компании на ближайшие 5 лет? Нет таких? Так если вы сами не знаете, что с вами будет через 20 лет, будет ли компания и какую нишу она намеревается занять, то мне-то откуда это знать?

6. Какие у вас были достижения на предыдущем месте работы?
— А резюме недостаточно, значит. Ну хорошо. Я отлично работал и великолепно справлялся со своими обязанностями. Вот это — достижение! Я вас разочарую: при правильном руководстве и хорошей работе никаких достижений быть не должно! Работать надо, а не ерундой маяться и достижения достигать!

7. Каким бы вы хотели видеть своего начальника?
— Я бы хотел его не видеть. Серьезно, мне нет разницы как он выглядит. Главное, чтобы он был начальником: тем, кто может нормально и внятно сформулировать задачи. А в остальном, пусть хоть в красных труселях на белой капибаре разъезжает по офису.

8. Какие у вас есть достоинства?
— На гуслях я умею играть и плеваться на 15 метров в длину. Если вам нужна моя квалификация, то она указана в резюме. Если вам что-то нужно еще — то об этом и спросите. А если вы сами не знаете, чего вы хотите и что вам нужно, то тут, извините, ничем помочь не могу. Формулировать скрытые и неясные желания — это вам к психиатру нужно.

9. Каковы ваши недостатки?
— Хорошо тенором пою, соседи жалуются, а в консерватории сказали — талант. Вот еще: когда ем суп, зачерпываю ложкой к себе, а не от себя!

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.