2008 Март 13 | Кирилл Павлюков
Мар 13

Вот наткнулся в Википедии на статью о шаблонах проектирования. Рекомендую к прочтению.

Для тех кто не знаком с определение паттернов предлагаю цитату из Вики:

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

А если »многа букаф», тогда вот определение от меня:

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

Короче, штука не просто полезная, а необходимая. 

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

ЗЫ: Хотя описания шаблонов достаточно понятны более-менее опытному разработчику, новичкам, скорее всего, будет тяжело без конкретных примеров реализации. Я попробую отыскать примеры использования паттернов в PHP и буду выкладывать их на своем блоге.

Автор: Кирилл Павлюков \\ Метки: ,

Мар 13

В одном из прошлых постов я написал, как установить и запустить прокси-сервер Squid под FreeBSD. В той заметке была указана лишь минимальная настройка, которая никак не затрагивала вопрос об авторизации. Пришло время «донастроить» прокси.

Итак, Squid предоставляет различные механизмы авторизации пользователей. Какой из них выбрать – зависит от ваших потребностей. Меня вполне устроила NCSA-авторизация, о ней и расскажу.

Для использования этого механизма, нужно добавить в конфиг-файл следующие строки:

1
2
3
4
auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid/users<br/>
auth_param basic children 5<br/>
auth_param basic realm Squid proxy-caching web server<br/>
auth_param basic credentialsttl 2 hours

А также заменить строку

1
http_access allow all

на

1
2
3
acl users proxy_auth REQUIRED<br/>
http_access allow users<br/>
http_access deny all

Теперь нужно создать файл /usr/local/etc/squid/internet_users и добавить в него пользователей. Делается это с помощью утилиты htpasswd. Если файл с паролями еще не существует, выполните htpasswd с ключом :

1
2
3
4
s1# htpasswd -c /usr/local/etc/squid/users kirill<br/>
New password: *****<br/>
Re-type new password: *****<br/>
Adding password for user kirill

Если же вам нужно добавить пользователя в уже существующий файл, выполните

1
2
3
4
s1# htpasswd /usr/local/etc/squid/users kirill<br/>
New password: *****<br/>
Re-type new password: *****<br/>
Adding password for user kirill

Посмотрите теперь на файл паролей. В нем должна появиться строка, содержащая введенное вами имя ползователя и хэш его пароля, разделенные двоеточием.

1
2
s1# cat /usr/local/etc/squid/users<br/>
kirill:0Q2rNA.AEfZOk

В общем, настройка завершена. Осталось заставить Squid перечитать настройки, чтобы внесенные изменения вступили в силу.

1
squid -k reconfigure

Автор: Кирилл Павлюков \\ Метки: , ,