Scope Guard средствами C++0x: часть 2

В прошлой части была рассмотрена реализация Scope Guard средствами . Благодаря шаблонам с переменным количеством параметров (variadic templates), реализация на получилась несколько проще, чем в оригинале, так как один и тот же шаблонный класс может использоваться для создания с различным количеством параметров.

Но, как было отмечено, предыдущая реализация не являлась оптимальной в плане количества строк. Можно сделать проще и короче. Далее »

Автор: Vladimir, опубликовано в: C/C++, комментариев: 4
26
Апр
2010

FogBugz 7 и nginx

На днях переводил один сервер с 2 на nginx, хочу поделиться рабочей конфигурацией nginx для  7. Далее »

Автор: Vladimir, опубликовано в: Администрирование, комментариев: нет
25
Апр
2010

Upstart, fork и daemon

У есть одна известная ошибка: неверное использование expect fork/expect daemon может подвесить initctl, после чего всякие start/stop/restart/reload <service> просто перестанут работать. Для полноты картины отмечу, что такой подвисший сервис не получится остановить и через /usr/sbin/service или /etc/init.d. Весёлая ошибка, но это еще не всё.

Есть еще одна тонкость: если программа использует fork(), то в конфигурационном файле должна присутствовать строка expect fork. По аналогии можно подумать, что если программа использует daemon(), то в конфигурационном файле должна присутствовать строка expect daemon. А вот и нет! Далее »

Автор: Vladimir, опубликовано в: Linux, комментариев: 1
24
Апр
2010

Scope Guard средствами C++0x: часть 1

Scope Guard — одно из средств автоматического освобождения ресурсов при выходе за пределы видимости переменной, с ними связанной. предоставляет базовую гарантию безопасности исключений. Авторами этой идеи (по-видимому) являются Andrei Alexandrescu и Petru Marginean. Если вы с этой статьёй еще не знакомы, то очень рекомендую к прочтению.

Реализация довольно простая, но из-за того, что C++ не поддерживал шаблоны с переменным количеством параметров, приходилось создавать несколько шаблонов — в зависимости от того, сколько аргументов принимает функция, выполняющая освобождение ресурсов. Далее »

Автор: Vladimir, опубликовано в: C/C++, комментариев: 2
23
Апр
2010

Борьба с ботами-взломщиками средствами rsyslogd

В предыдущих частях статей цикла «Скажи «Нет!» взломщику» со взломщиками мы боролись при помощи связки swatch + : swatch проводил анализ системного журнала сообщений, использовался для блокировки непрошеных гостей.

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

Одна из альтернатив — использование rsyslogd. Далее »

Автор: Vladimir, опубликовано в: Администрирование, Безопасность, комментариев: 5
21
Апр
2010