Включение Samba-сервера на базе Ubuntu в домен AD

В нашей предыдущей работе было рассмотрено, что такое Active Directory и Samba и в чем состоят преимущества их совместной работы. Также был рассмотрен процесс сборки Samba из исходников и включение ее в домен, и все это — из командной строки. Следует признать, что сборка чего-либо из исходников не является распространенной практикой в современных дистрибутивах Линукс. Гораздо чаще для установки программного обеспечения используются репозитории. Это позволяет сделать процесс установки более дружелюбным и простым для пользователя. Также могут автоматически вовлекаться дополнительные пакеты, необходимые для работы устанавливаемого ПО, что опять же серьезно облегчает жизнь и избавляет от необходимости изучать списки необходимых предустановленных пакетов. В настоящее время наблюдается тенденция к повсеместному использованию графических интерфейсов. Можно долго обсуждать доводы «за» и «против», но факт остается фактом: все большее количество пользователей и даже системных администраторов предпочитает для значительного числа задач использовать GUI. В рамках этой статьи мы постараемся рассмотреть процесс установки и включения в домен Samba при помощи командной строки и репозиториев, а также включение Samba в домен при помощи графического интерфейса утилиты SADMS.
По статистике, Openstat Ubuntu является 4-й в списке самых популярных ОС для веб-серверов, и её популярность быстро растёт. В нашем случае это дистрибутив Ubuntu Server 12.04 LTS. Найти дистрибутив можно на официальном сайте Ubuntu.

1.Включение Samba-сервера на базе Ubuntu в домен AD при помощи командной строки

Для начала рассмотрим включение сервера на базе Ubuntu в домен AD средствами командной строки. Процесс подробно описан в документации на сайте Ubuntu.

2.Установка обновлений и необходимых пакетов.

Нам понадобятся Kerberos, Samba и Winbind. Прежде чем их устанавливать, рекомендуется обновить систему:

sudo apt-get update sudo apt-get upgrade 

После успешной установки обновлений ставим Kerberos, Samba и Winbind:

sudo apt-get install install krb5-user samba winbind 

В этой команде,
krb5-user— пакет для протокола Kerberos, который используется для аутентификации в Windows;
samba— позволяет стать членом домена;
winbind— позволяет использовать учетную запись пользователя из ActiveDirectory.
При использовании графического интерфейса можно использовать менеджер пакетов Synaptic. Стоит заметить, что по умолчанию в Ubuntu Server 12.04 LTS графического интерфейса нет, его при необходимости можно установить отдельно:

sudo apt-get install ubuntu-desktop 

После этого необходимо сконфигурировать все компоненты для работы с доменом. Тестовый домен называется LAB.LOCAL, контроллер домена — lab-dc1.lab.local, c IP 192.168.7.2, имя сервера — testubuntu.

3.Настройка DNS

В первую очередь необходимо настроить DNS на хосте под управлением Ubuntu (сервером DNS будет контролер домена), а также прописать правильный домен поиска. Для этого необходимо отредактировать файл /etc/resolv.conf, чтобы он содержал следующую информацию:

domain lab.local search lab.local nameserver 192.168.7.2 

Для их применения изменений необходимо перезапустить сетевую службу:

/etc/init.d/networking restart 

Также следует убедиться, что имя сервера в файле /etc/hostname задано верно:

testubuntu 

Необходимо еще отредактировать файл /etc/hosts таким образом, чтобы в нём была запись с полным доменным именем компьютера и обязательно с коротким именем хоста, ссылающаяся на один из внутренних IP:

# Имена этого компьютера 127.0.0.1	localhost 127.0.1.1	testubuntu.lab.local	testubuntu 
4.Настройка синхронизации времени.

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

ntpdate ntp.mobatime.ru 

Автоматическая же синхронизация настраивается с помощью ntpd, этот демон будет периодически выполнять синхронизацию. Для начала его необходимо установить:

sudo ap<i>t-get</i> install ntp 

Теперь необходимо внести правки в файл /etc/ntp.conf, добавив в него информацию о сервере времени:

# You do need to talk to an NTP server or two (or three). server lab-dc1.lab.local 

После чего нужно перезапустить демон ntpd:

sudo /etc/init.d/ntp restart 
5.Настройка Kerberos.

Следующий этап — настройка авторизации через протокол Kerberos. Нужно будет отредактировать файл /etc/krb5.conf. Ниже приведен результат правок:

[libdefaults] 	default_realm = LAB.LOCAL 	kdc_timesync = 1 	ccache_type = 4 	forwardable = true 	proxiable = true 	v4_instance_resolve = false 	v4_name_convert = { 		host = { 			rcmd = host 			ftp = ftp 		} 		plain = { 			something = something-else		} 	} 	fcc-mit-ticketflags = true 
[realms] 	LAB.LOCAL = { 		kdc = lab-dc1 		admin_server = lab-dc1 		default_domain = LAB.LOCAL 	} 
[domain_realm] 	.lab.local = LAB.LOCAL 	lab.local = LAB.LOCAL [login] 	krb4_convert = false 	krb4_get_tickets = false 

На данном этапе можно проверить, что мы можем авторизоваться в домене. Для этого используем следующую команду:

kinit user@LAB.LOCAL 

Вместо user, естественно, стоит вписать имя существующего пользователя домена. Имя домена необходимо писать заглавными буквами!
Если выполнение команды не привело к возникновению ошибок — значит, всё верно, и домен отдаёт вам тикет Kerberos. Убедиться в том, что тикет получен, можно, выполнив команду:

klist 

Удалить все тикеты можно командой

kdestroy 

Итак, будем считать, что авторизация прошла успешно; пора настроить непосредственно вход в домен.
Еще один файл, который нас интересует — /etc/samba/smb.conf. В нем нам нужна секция [global]. Ниже — пример части файла конфигурации Samba с комментариями по поводу значения важных параметров:

[global]  
# Эти две опции нужно писать именно в заглавном регистре, причём <code>workgroup</code> без    # последней секции после точки, а <code>realm</code> - полное имя домена     workgroup = LAB    realm = LAB.LOCAL 
 # Эти две опции отвечают как раз за авторизацию через AD    security = ADS    encrypt passwords = true    # Просто важные     dns proxy = no     socket options = TCP_NODELAY 
 # Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,    # или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде    domain master = no    local master = no    preferred master = no    os level = 0    domain logons = no 
# Отключить поддержку принтеров    load printers = no    show add printer wizard = no    printcap name = /dev/null    disable spoolss = yes 

Отредактировав smb.conf, выполните команду

testparm 

Она проверит конфигурацию на ошибки и выдаст суммарную сводку о нём:

# testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER Press enter to see a dump of your service definitions 

Как видно, были заданы правильные параметры для того, чтобы компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого используется следующая команда:

net ads join -U admin -D LAB  

И в случае успеха вывод команды должен быть примерно таким:

# net ads join -U <i>admin</i> -D LAB Enter admin's password: Using short domain name — LAB  Joined 'testubuntu' to realm 'lab.local' 
6.Параметры, используемые командой net

  1. U username%password — обязательный параметр, вместо admin необходимо подставить имя пользователя с правами администратора домена и указать пароль.
  2. D DOMAIN: DOMAIN — собственно сам домен; его можно и не указывать, но лучше всё же это делать всегда — так спокойнее.
  3. S win_domain_controller: win_domain_controller можно не указывать, но бывают случаи, когда автоматически сервер не находит контроллер домена.
  4. createcomputer=«OU/OU/…»: в AD часто используется OU (Organizational Unit), есть в корне домена OU = Office, в нем OU = Cabinet; чтобы сразу добавить в нужный, можно указать так:
    	sudo net ads join -U username createcomputer=«Office/Cabinet». 	

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

net ads testjoin 

Если проблем не возникло, то вывод команды будет следующим:

#net ads testjoin Join is OK 

Но иногда после сообщения о присоединении к домену выдаётся такая ошибка:

DNS update failed! 

Прежде чем выяснять, почему же не обновляется DNS, перезагрузите компьютер после введения в домен! Вполне возможно, что это решит проблему.
Если это не помогло, рекомендуется ещё раз проверить настройки DNS: с большой долей вероятности причина будет в них. После этого нужно удалить компьютер из домена и попытаться повторить процесс заново.
Если всё прошло без ошибок, то компьютер успешно включен в домен. Можно зайти на домен-контроллер и убедиться в этом.
Если вам необходимо как-либо работать с пользователями домена, например, настраивать SMB-шары с разграничением доступа, то кроме самой Samba вам понадобится ещё и Winbind — специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory.
Проще говоря, Winbind нужен, если вы хотите видеть пользователей домена на своём компьютере с Ubuntu.
Winbind позволяет спроецировать всех пользователей и все группы AD в вашу Linux-систему, присвоив им ID из заданного диапазона. Таким образом, вы сможете назначать пользователей домена владельцами папок и файлов на вашем компьютере и выполнять любые другие операции, завязанные на пользователей и группы.
Для настройки Winbind используется всё тот же файл /etc/samba/smb.conf. Добавьте в секцию [global] следующие строки:

# Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.    # Диапазоны идентификаторов для виртуальных пользователей и групп.    idmap uid = 10000 - 40000    idmap gid = 10000 - 40000    # Эти опции не стоит выключать.    winbind enum groups = yes    winbind enum users = yes    # Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп    # будут использоваться с доменом, т.е. вместо user - DOMAIN\user.    # Возможно именно это вам и нужно, однако обычно проще этот параметр включить.     winbind use default domain = yes    # Если вы хотите разрещить использовать командную строку для пользователей домена, то    # добавьте следующую строку, иначе в качестве shell'а будет вызываться /bin/false    template shell = /bin/bash    # Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку    winbind refresh tickets = yes 

Теперь перезапустите демон Winbind и Samba в следующем порядке:

sudo /etc/init.d/winbind stop sudo smbd restart sudo /etc/init.d/winbind start  

После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой

# wbinfo -t 

а также, что Winbind увидел пользователей и группы из AD, командами

wbinfo -u wbinfo -g 

Эти две команды должны выдать список пользователей и групп из домена соответственно.
Итак, Winbind работает, однако в систему он ещё не интегрирован.
Чтобы ваша Ubuntu прозрачно работала с пользователями домена (в частности, чтобы вы могли назначать пользователей домена владельцами папок и файлов), необходимо указать Ubuntu использовать Winbind как дополнительный источник информации о пользователях и группах.
Для этого измените две строчки в файле /etc/nsswitch.conf:

passwd:         compat group:          compat 

добавив к ним в конец winbind:

passwd:         compat winbind group:          compat winbind 

Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив

getent passwd getent group 

Первая команда должна вам вернуть всё содержимое вашего файла /etc/passwd, то есть ваших локальных пользователей плюс пользователей домена с ID из заданного вами в smb.conf диапазона. Вторая должна сделать тоже самое для групп.

Включение Samba-сервера на базе Ubuntu в домен AD при помощи графического интерфейса и SADMS.

Возможно, скажем в домашних условиях или в спешке, вам захочется произвести все эти манипуляции в графическом режиме. Для этих целей существует пакет SADMS, о котором есть информация на сайте Ubuntu. А на сайте можно узнать все об этом пакете и скачать его. Посмотрим на интерфайс пакета:

Рис. 1. Общий вид главной вкладки.

Здесь отображаются статусы winbind, smb и nmb, и присутствует индикация подключения компьютера к домену.

Рис. 2. Запуск smb и nmb.


Рис. 3. Вкладка «Данные».

Здесь мы должны указать данные, которые будут использоваться для подключения к домену. По умолчанию поля заполнены разработчиками, для примера. Разработчики пакета — французы, так что пусть вас не смущают примеры вроде «administrateur» вместо привычного «Administrator».


Рис. 4. Автоматический захват части параметров.

Щелкаем по «Определить» — и часть параметров подхватывается автоматически. Остальные придется заполнять вручную. Все эти параметры использовались при настройке из командной строки.


Рис. 5. Заполнение остальных полей.

Заполняем поля. Здесь обратите особое внимание: Netbios имя домена должно быть прописано БОЛЬШИМИ буквами, иначе получим ошибку Kerberos, как вышло в данном случае. Если все заполнено правильно, щелкаем по «Установить» — и SADMS включает машину в домен.


Рис. 6. Машина включена в домен успешно.


Рис. 7. Меню «Проверки».

Из меню «Проверки» мы можем выполнить тесты на выполнение различных операций. Также можно провести все тесты из командной строки, как это описывалось ранее.


Рис. 8. Пример вывода теста на членство в домене.


Рис. 9. Результаты теста сети.


Рис. 10. Проверка наличия машины на контролере домена.

Сервер находится в списке доменных машин вместе с другими нашими серверами.
Итак, мы рассмотрели установку Samba и включение ее в домен — с использованием как командной строки, так и графического интерфейса. Использование графического интерфейса позволяет серьезно ускорить и упростить настройку, но вместе с тем не позволяет понять всю механику процесса, а также может серьезно затруднить процесс поиска ошибки. С другой стороны, CLI (Command Line Interface), хоть и предоставляет абсолютный контроль над всем, гораздо менее дружелюбен к пользователю и подразумевает у него наличие некоторых навыков работы. Какой способ использовать — решать вам.

ссылка на оригинал статьи http://habrahabr.ru/post/171057/

Кастуем магией PHP

PHP замечательный язык программирования. При всех его недостатках он не переставает удивлять. Недавно столкнулся со следующим — на первый взгляд загадочным — его поведением.

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

<?php echo "Hello, "; ?>  World.  <?php  echo "All is fine\n";  

Выводом программы будет «Hello, World. All is fine», что и следовало ожидать. Но что происходит на самом деле? Посмотрим на другой пример:

<?php $three = function() { ?>         Three <?php };  $one = function() { ?>         One <?php };  $two = function() { ?>         Two <?php };  $one(); $two(); $three();  

Если выполнить исходный код, то выводом программы будет «One Two Three», что немного странно. Ведь текст в коде встречался совсем в другой последовательности и в буфер вывода должно было попасть «Three One Two».

На самом деле PHP не отправляет текст в буфер вывода как только он его встречает. В интерпертаторе языка есть специальный опкод ZEND_ECHO (имено в этот опкод транслируется echo) и кусок текста между PHP кодом будут транслироваться в аргумент этого опкода. Именно поэтому у нас текст во втором примере выводиться в той последовательности в которой мы вызываем созданные анонимные функции (вывод текста стал частью анонимных функций благодаря опкоду ZEND_ECHO.

В подтверждении моих слов кусочек содержимого файла zend_language_parser.y

	|	T_INLINE_HTML			{ zend_do_echo(&$1 TSRMLS_CC); } 

И реализация самой функции zend_do_echo из zend_compile.c:

void zend_do_echo(const znode *arg TSRMLS_DC) /* {{{ */ { 	zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);  	opline->opcode = ZEND_ECHO; 	SET_NODE(opline->op1, arg); 	SET_UNUSED(opline->op2); } /* }}} */ 
Ну и какой от этого толк?

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

$c->header->addClass('header')->setContent(function() { ?>  	<ul>             <?= $c->li->addClassIf(1, 'active')->setContent('Main') ;?>             <?= $c->li->addClassIf(0, 'active')->setContent('Account') ;?>             <?= $c->li->addClassIf(0, 'active')->setContent('FAQ') ;?>             <?= $c->li->addClassIf(0, 'active')->setContent('Logout') ;?>                     </ul>  <?php })->_print(); ?> 

Где в переменой $c->header объект класса CElement. Удобно? На вкус и цвет товарищей нет)

ссылка на оригинал статьи http://habrahabr.ru/post/171097/

Посылки без отчества не отдаем, или о новых правилах почты России

Почта России неожиданно серьезно осложнила и без того нелегкую жизнь получателем международных обьявлений. Оказывается, с февраля на всех без исключения почтовых отправлениях, получаемых россиянами, должно присутствовать полное ФИО, включая отчество. Проще говоря — если в паспорте у вас есть отчество, то и на посылке оно должно присутствовать, иначе получить его вы не сможете.
Такая практика уже около года действует для отправлений, отправляемых внутри страны — без указания полного ФИО отправление не принимали к пересылке, но сейчас такие правила стали действовать и в отношении международных малых пакетов.
К сожалению, мне не удалось пока получить номер приказа, который устанавливает эти правила, но в наличии правил может убедиться каждый — позвонив на горячую линию почты России(8-800-2005-888).

А что делать? Изменить во всех своих адресах свое ФИО на полное. А что делать, если вам уже идет посылка?
Вариант номер 1 — пойти на почту и попытаться убедить операторов в том, что изменить адрес затруднительно. Возможно, приказ до них еще не дошел, или они не обращают пока на него внимания.
Вариант номер 2, рекомендованный горячей линией — отправитель посылки должен на своей почте заполнить бланк заявления о смене адреса — форма CN17. В нем следует указать изменение имени получателя, и добавить к нему отчество.
Форма CN17:

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

Обсуждения:
На 7ya.ru
На russiapochta.ru
На ebay-forum.ru

ссылка на оригинал статьи http://habrahabr.ru/company/boxowerview/blog/171093/

Математическая модель злоумышленника и защита физических объектов


Данное литературное произведение представляет собой слабую попытку привлечь
ваше сознание к современной проблеме обеспечения безопасности физических объектов.
В этой истории рассматриваются только стационарные средства физической защиты (далее ФЗ)
и непрерывно передвигающийся нарушитель с переменной скоростью.

Представьте себе, что вам предложили возглавить службу безопасности…

Здесь возможны варианты: вам предложили возглавить службу безопасности президента, олигарха или ядерного объекта, расположенного в городе Ч-70.
Вам поставлена задача: повысить уровень обеспечения безопасности и предотвращения несанкционированного доступа к охраняемому объекту.

С чего бы вы начали свою трудовую деятельность на новом рабочем месте за массивным письменным столом?

Правильно. Вы разложите на этом столе карту охраняемого объекта.

На карте — загородная резиденция высокопоставленного чиновника или ядерный реактор.
И то, и другое расположены на местности, огороженной проволочным забором, именуемым на официальном языке термином «периметр», обозначенный буквой LD.
На той же карте отображена и характеристика огороженой местности, как то леса, горы и прочие реки и особенности ландшафта.
Условными значками на ту же карту (секретную!) нанесены приборы обнаружения, посты часовых, минные поля и просто закопанные в землю потайные шумовые мины.
Также отмечены все дополнительные постройки, дороги, тропинки и прочие пути сообщения. Охраняемое здание помечено на карте буквой M0.

Поставьте себя на место человека, которого в дальнейшем будем именовать «нарушитель».
Каким образом нарушителю «удобнее» всего добраться до своей цели, помеченного буквой M0?

Основные вопросы

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

  1. Что такое «эффективность системы физической защиты»?
    Неопределённость смысла этого термина приведёт к тому, что, как в сказке, вам придётся найти то, не зная что, и сделать при этом неведомо что
  2. Как строили свою работу ваши предшественники на вашем новом посту?
    Какими методами решали возникающие задачи?

На первый вопрос ответ лежит на поверхности- под эффективностью системы ФЗ понимается вероятность обнаружения нарушителя
и пресечения его преступных умыслов.

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

Если из ста нарушителей половина доберётся до домика, помеченного буквой M0, то это будет уже не вероятность, а проходной дом.
А если без шуток, то вероятность составит в этом случае ровно 0.5.

Правда, при пользовании таким определением возникает вопрос — на каждом возможном пути нарушителя от периметра к намеченной цели такая вероятность разная и не совпадает с только что посчитанной.
Нарушителю может повезти — он не встретит ни одного часового, у него никто не попросит предъявить пропуск.
Напротив, встретив на пути часового и не имея при себе пропуска нарушитель обнаруживает себя мгновенно.
Наступив на мину, нарушитель также мгновенно обнаруживает себя (вернее, часовые обнаруживает его останки).

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

Возникают два дополнительных вопроса: как найти вероятность преодоления того или иного препятствия (средства ФЗ), и как перебрать все возможные траектории следования нарушителя, чтобы выбрать ту, на которой вероятность успеха нарушителя максимальна.
Если первую задачу решают создатели средств защиты, и все нужные данные вы можете найти в секретных справочниках,
то перебрать все мыслимые пути просто невозможно.

Основная формула

И вы выписываете первую формулу, чтобы хоть что нибудь написать и придать наукообразный вид вашей проблеме

Лаконичность языка математики не позволяет несведущему что-либо понять в этой записи.
Но у Вас — математическое образование, и вы легко переводите написанное на русский язык:

эффективность системы ФЗ есть минимум из всех возможных вероятностей обнаружения нарушителя на множестве всех возможных траекториях его движения от периметра LD до цели M0.

Мы уже говорили, что перебор всех траекторий невозможен и мы плавно перешли ко второму вопросу — как обходили эту невозможность ваши предшественники на посту руководителя службы безопасности?

Изучение этого вопроса заняло также не очень много времени.

Классическая теория ФЗ

Ваши предшественники брали лист бумаги с картой, разбивали всю охраняемую территорию на под-области, каждую под-область заменяли кружком, и затем соединяли нарисованные кружки отрезками прямых.
На полученном рисунке, который в науке называется «граф», отрезки прямых, именуемые «рёбрами графа», снабжали некоторыми числами, означающими вероятности обнаружения при перемещении по этому ребру.
В реальности никаких рёбер не существует. Данный граф является только математической моделью охраняемого объекта, ею удобно пользоваться, поскольку существует развитая теория графов, позволившая, во-первых, свести бесконечное число мыслимых перемещений нарушителя к конечному множеству путей ( рёбра графа) и эффективного нахождения такого пути следования по рёбрам графа, который даёт минимальную из возможных (подчёркиваю- в силу конечности траекторий в модели охраняемого объекта!) вероятностей обнаружения.

Таким образом, мы имеем возможность найти значение эффективности системы ФЗ.
Правда, при этом этом сохраняется большая доля субъективности при замене реальной карты графом, соединении вершин рёбрами, приписывании каждому ребру вероятности обнаружения и много другого.
Субъективность пытаются уменьшить, сводя процедуру замены реальной карты графом к набору стандартных замен, но это только ЕДИНООБРАЗИЕ процедуры, а отнюдь не повышение объективности. Такой ценой досталась вашим предшественникам переход от бесконечности к «конечности».

Вы с удивлением обнаружили, изучая секретную литературу, что так поступают во ВСЁМ МИРЕ!
И вам это, как бывшему студенту мех-мата, категорически не нравится.

Основы непрерывного алгоритма ФЗ

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

Каждой точке охраняемой территории M ставится в соответствие «функция распределения» случайной величины, которой является время обнаружения субъекта, неподвижно находящегося в этой точке. Эта функция получается, исходя из характеристики местности, просматриваемости этой точки с постов наблюдения (как часовых, так и приборов) и прочих факторов.
Замечу, эта процедура пока не формализована!

Вместо функции распределения в дальнейшем используется её производная, называемая «плотностью функции распределения»,
и даже не сама эта производная, а её значение при значении аргумента t равного нулю.

Эта функция называется «функцией риска» и, определённая во всех точках области, образует поле риска p(M).
На рисунке представлена территория с определённой таким образом полем риска,
на котором светлым тоном представлены области с минимальным значением этой функции, а темным — максимальным.
На этом же рисунке красной линией изображён один из возможных (их бесконечное множество!) маршрутов нарушителя.

Траектория проходит по точкам и «аккумулирует» все встреченные значения функции риска. Точными математическими средствами удаётся связать термин «эффективность» со следующей формулой

Интеграл представляет собой криволинейный интеграл первого рода по кривой, являющейся траекторией движения нарушителя.
Функция V(M) есть скорость нарушителя. Задав вид кривой, вы без труда найдёте вероятность достижения цели нарушителем, и, одновременно, вероятность его обнаружения. Обе эти величины в сумме равны единице.
Эффективность системы ФЗ приобретает несколько другое, более содержательное, чем прежде, выражение

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

Эффективное средство решения задачи вариационного исчисления

Глядя на написанный функционал, припомните лекции по физике.
Ничего не напоминает? Именно в разделе «геометрическая оптика» такой интеграл называется «эйконал». Его минимум на всех возможных путях «фотона» даёт время прохождения света от источника до приёмника. В физике это называется «принцип Ферма».

Стало быть, найдена замечательная аналогия между реальным светом и абстрактным понятием «безопасность». Если представить картинку, нарисованную выше как неоднородную оптическую среду с местной скоростью света, то свет ( «фотон»), испущенный одновременно из всех точек периметра LD, достигнет цели M0 за время, равное эффективности системы ФЗ, представленной нарисованной картинкой поля риска, а его (света) путь совпадёт с оптимальной траекторией движения нарушителя. Бинго.

Фронт световой волны

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

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

Сложнее построить траекторию «нужного фотона», который и определит наиболее безопасный для нарушителя путь и, одновременно, укажет службе охраны наиболее уязвимое место защиты. Я строил такой алгоритм в приложении типа лабиринт под iOS, но он не оптимален и нуждается в модернизации.

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

ссылка на оригинал статьи http://habrahabr.ru/company/papabubadiop/blog/171095/

IDC посчитал рынок смартфонов в России

На проходящем в Барселоне World Mobile Congress состоялась ежегодная презентация, в рамках которой аналитик IDC Саймон Бейкер привел итоговые результаты продаж смартфонов в России в 2012 году.
Как и отчеты других компаний (а недавно их делал и Kantar, и Евросеть, и МТС), он показывает новые продажи устройств, осуществленный в России. Соответственно, он не учитывает обычные мобильные телефоны (а их в России по прежнему под 70%) и не показывает уже имеющиеся на руках устройства (речь про новые продажи).



Основные выводы IDC следующие:

  • Android продолжает уверенный рост, по сути заняв практически всю прежнюю долю Symbian
  • В соответствии с прошлогодним прогнозом продажи Windows Phone в России превзошли iPhone
  • Linux в виде Samsung Bada более чем успешен в России, хотя глобально цифры сильно скромнее

Рост Windows Phone в России находится в тренде глобальных результатов — в Италии например он уже достиг отметки в 14% новых устройств, а в США в несколько раз опередил Blackberry. В России на конец 2012 года цифра составляет 7%.

Также IDC привел данные по призводителям смартфонов:

За год Samsung уверенно вышел на первое место (как и во всем мире), причем в России его доля превысила 50%.
При этом значительно увеличивается конкуренция между остальными брендами.

В целом можно отметить, что в глобальном масштабе Россия по-прежнему не находится в лидерах по популярности смартфонов. Отметку в 50% против обычных телефонов США прошла прошлой зимой, Европа еще раньше, а в России по словам IDC это может произойти только ближе к 2015 году.

ссылка на оригинал статьи http://habrahabr.ru/post/171091/