Speaker Rabbit

abbra


CIFS: curious information funneled sometimes


Previous Entry Share Next Entry
Бесконечная автоматизация
Speaker Rabbit
abbra
Конечные автоматы бывают разные. Есть генераторы исходного кода по схемам-описаниям, есть табличные исполнители, а есть неявные конечные автоматы. Они сложнее, но читаются как детективный роман -- со множеством веток предположений и откатов на исходные позиции, а так же с необходимостью найти на них время. Неявные конечные автоматы в разных проектах -- это то, что одновременно удерживает от прихода новых участников (нужно уметь раскручивать детективный сценарий) и позволяет глубже понять, что и как задумывалось. Разгадав очередной автомат, получаешь вполне осязаемое удовлетворение.
  1. Парсер конфигурационных файлов (.ini-файлов): начало, подкладывание очередного "трупа", обнаружение "трупа", раскрытие убийства. В качестве источника информации Шерлок использует очередь событий, связанную с конкретным парсером, в рамках процесса обработки эта очередь глобальна, все участники обработки имеют доступ ко всей информации, все происходит прямо на глазах у Ватсона.
  2. Авторизация пользователя или проверка прав доступа относительно сервера Kerberos V в обработчике PAM: начало. События имеют несколько уровней видимости, раскрытие преступления уже не разворачивается на глазах у Ватсона -- Шерлок постоянно общается с какими-то мутными посетителями, приносящими странные предметы и получающими какие-то не относящиеся, вроде бы, к основному расследованию, задания. При этом создается видимость бездействия сыщика, не делающего ничего до появления следующего посетителя. Асинхронная обработка событий кого угодно может запутать. К тому же, Шерлок активно пользуется своим опытом. Наконец, две (авторизация и проверка) основные ветки счастливого конца, которые все же могут довести и до цугундера.


  • 1
Забавно :)

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

Фентезийных много и они обычно простые. Из сложно отслеживаемых -- это вот такие луковичные с GSSAPI, например, туннелированные в какой-нибудь SSL или TLS. Или VFS поверх чего-нибудь нефайлового, вроде твоего netlink. :)

Мне только кажется или krb5_access_done() имеет скажем так недоработочку?
В приведенном коде dp_err = DP_ERR_OK всегда, хотя по хорошему ему вначале должно быть присвоена константа типа DP_ERR_SOMEERROR.

В этом месте мы уже получили ответ от krb5 и от результатов этого ответа зависит только значение pam_status, а dp_err не зависит. А пойдет этот код в src/providers/data_provider_be.c:be_pam_handler_callback(), где он игнорируется (в отличие от acctinfo_callback(), где он имеет значение, поскольку вернется в вызывавшее приложение через glibc и getent). Излишки типизации callback-ов.

То есть по сути второе присваивание просто лишнее. Так?

Мне тоже так показалось. В понедельник выясню.

Простите за офтоп. Не могли бы помочь с информацией по парковкам в Хельсинки. А то поиском очень много старой информации находится.

Надо оставить машину на несколько дней в Хельсинки. Можно ли оставить машину бесплатно на парковке около стадиона на несколько дней? Насколько реально там найти место, если, например, приехать часов в 7..9 утра?

Спасибо. Извините, если не по адресу.

Re: Офф-топик

Без понятия. Бесплатных парковок на несколько дней я не видел.

Re: Офф-топик

Понятно. Спасибо.

  • 1
?

Log in

No account? Create an account