Исправление ошибки в INSERT INTO … SELECT в Kohana 3 при использовании конфигурации базы данных, отличной от default

Ситуация: нужно выполнить запрос вида

[-]
View Code SQL
INSERT INTO `table` (`col1`, `col2`) SELECT * FROM `table` WHERE `col1` <> 0;

Если использовать конфигурацию default, то всё отлично работает. Если же использовать другую конфигурацию, то можем получить ошибку соединения с базой данных и исключение. Далее »

Автор: , опубликовано в: Kohana, комментариев: нет
12
Авг
2010

Поддержка JOIN в запросах DELETE для Kohana 3

Иногда бывает полезно выполнить удаление записей в нескольких связанных таблицах, благо синтаксис позволяет. Разумеется, есть такая вещь как каскадное удаление записей, но в случае с (а именно — таблицами MyISAM) на неё надеяться не приходится.

Модуль Database из не умеет использовать JOIN с операцией DELETE. Нужно ему помочь. Далее »

Автор: , опубликовано в: Kohana, комментариев: нет
11
Авг
2010

Патч для кэширования пустых результатов запросов в Kohana

Проблема: (3.0.7, возможно, ранние версии) не может брать результаты запросов из кэша, если запрос вернул пустой результат.

Решение проблемы. Далее »

Автор: , опубликовано в: Kohana, комментариев: 1
11
Авг
2010

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

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

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

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

FogBugz 7 и nginx

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

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

Upstart, fork и daemon

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

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

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

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

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

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

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

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

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

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

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

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

О компьютерных вирусах

I think computer viruses should count as life. I think it says something about human nature that the only form of life we have created so far is purely destructive. We’ve created life in our own image.

– Stephen Hawking

Перевод:

Я думаю, что компьютерные вирусы должны считаться жизнью. Полагаю, что это говорит что-то о человеческой природе — единственная форма жизни, которую мы до сих пор создали, весьма разрушительна. Мы создали жизнь по своему подобию.
Автор: , опубликовано в: Всё подряд, комментариев: 4
10
Апр
2010

ProFTPd, FTPS и iptables

Ситуация: есть сервер, на котором крутится , а настроен так, чтобы не разрешать лишних соединений (политика по умолчанию — DROP). При этом есть желание, чтобы -сервер работал по протоколу FTPS и поддерживал пассивные соединения. Далее »

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