Search
Write a publication
Pull to refresh
7
0
Дмитрий @Joka

Пользователь

Send message

Интересное поведение lib_mysqludf_preg

Reading time1 min
Views610
Существует сторонняя библиотека для MySQL которая дает возможность использовать PCRE в этом самом MySQL. Находится она вот по этому адресу mysqludf.com/lib_mysqludf_preg

Описывать ее функции я не буду, остановлюсь лишь на одном интересном моменте, который заставил потратить около 30 минут на поиск проблем.

Д опустим у Вас есть некий проект который делает выборки из базы при помощи PREG_CAPTURE, где регулярным выражением является значение в колонке базы, а строкой для проверки некая строка, подставляемая в запрос.

Итого запрос выглядит так:

SELECT something FROM table1 WHERE NOT ISNULL(CONCAT('/',`field1`,'/'),'somemystring')

Работает он прекрасно, выдает данные или не выдает. До того момента как в одном из значений field1 не появится синтаксически не верное и некомпилируемое регулярное выражение.

Пример такого выражения: *something_regexp

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

Возможно разработчик библиотеки так и задумывал ее работу, но это доставляет определенные проблемы. Просто будьте осторожны.

Пишем свой плагин для nagios

Reading time1 min
Views9.7K
В своей повседневной работы я очень активно использую nagios. Как мне кажется, это очень мощная система для мониторинга серверов. Можно мониторить загрузку сервера, доступность разных серверов и тд и тп.

Для нагиоса есть очень много плагинов. Большое собрание плагинов находится по адресу nagiosplugins.org. Можно найти подходящий для себя, поставить и наслаждаться жизнью. Но что же делать если ни один плагин не устраивает вас по функционалу? Да ничего. Напишем свой. Это очень просто.

Итак начнем.

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

Он парсит свой конфиг, находит там команду запуска какого-либо плагина и запускает. Например, php -f checkServer.php. checkServer.php выполняет какую-то свою работу по проверке сервера и отдаёт в ответ статусное сообщение и код завершения работы.

Нагиос понимает 4 кода завершения работы
  • 0 — Все ок.
  • 1 — Предупреждение
  • 2 — Критическая ошибка
  • 3 — Что-то неизвестное случилось

Статусное сообщение это любая информация которая выводится скриптом на стандартный вывод.

И так сам скрипт простейшего плагина под nagios(на php).

define( "STATUS_OK", 0 );
define( "STATUS_WARNING", 1 );
define( "STATUS_CRITICAL", 2 );
define( "STATUS_UNKNOWN", 3 );

$checkFilePath = 'file';
if(file_exists($checkFilePath))
{
echo 'File exists. Everything is ok';
exit(STATUS_OK);
}

echo 'File does not exists';
exit(STATUS_CRITICAL);


вот и все — подключаем в нагиос и он будет проверять существует ли файл или нет. Конечно же Вы можете организовать любую проверку бизнес логики своего проекта, вплоть до автоматического тестирования через phpunit.

Правила составления Software requirements specification

Reading time5 min
Views200K
Все мы прекрасно знаем о том, как разрабатывается ПО. Подумали 10 минут и сразу пошли кодить. Цикл создания программного обеспечения состоит из многих ключевых моментов. Это такие моменты как планирование, создания архитектуры, создание SRS, создание дизайна и тд и тп.

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

Просчет cyclometric complexity в пхп

Reading time1 min
Views465
Здравствуйте.
Уважаемые хабролюди скажите, чем вы просчитываете циклометрику в пхп коде? может есть какой то плагин к какому нибудь IDE ??

нашел только вот такой вот линк !http://ars.altervista.org/lint_php/lint_php.php, но не удобен он. Хотелось бы что-то встроеное в ИДЕ.

Спасибо

Создание темы для Zend studio for Eclipse 6.1

Reading time1 min
Views472
Задался я проблемой создать темную темку в Zend Studio 6.1. Наивно решил что темы в гугле уже есть и можно поискать там. Однако оказалось, что это не совсем так.

Zend Studio 6.1 не поддерживает цветовые схемы в принципе. Осталось ручками создавать интерфейс под себя. Создал — выкладываю Вам темную тему.
Читать дальше →

SQA в PHP

Reading time1 min
Views560
Приветсвую всех.
Случилось так, что на работе нужно более глубоко использовать SQA (software quality assurance). Погуглив, сделал пока выводы, что можно использовать

1. phpunit как средство тестирования кода (simpleTest как альтернатива, и другие фрейворки для тестирования кода)
2. Selenium как средство тестирование веб интерфейса
3. code review для повышения качества кода. (он же рефакторинг)
upd:
4. code coverage by phpunit+xdebug для установления какой код не используется
5. багтрекер на основе trac

а что можно еще использовать чтобы повысить качество кода? какие методики?

спасибо за внимание

Yandex не хочет искать по mp3

Reading time1 min
Views544
вот по этому линку не выдает вообще результатов yandex.ru/yandsearch?text=mp3&lr=187

это так и надо или что? :))

не надо говорить что юзай гугл — его только и юзаю — просто интересно про яндекс :)

UPD: уже ищет нормально — а утром не искал :)

Великая карма? как же ты устроена?

Reading time1 min
Views497
Вот я собственно не понял как же работает карма. В хабрахелпе сказано что если карма больше 2-х — то можно выставлять комментариям репутацию. Вчера так и было. Но когда я поставил пару оценок — выставление репутации для каментов стали неактивны, хотя карма вроде выше 2-х.

Где я что неправильно понимаю?

Великая карма? как же ты устроена?

Reading time1 min
Views542
Вот я собственно не понял как же работает карма. В хабрахелпе сказано что если карма больше 2-х — то можно выставлять комментариям репутацию. Вчера так и было. Но когда я поставил пару оценок — выставление репутации для каментов стали неактивны, хотя карма вроде выше 2-х.

Где я что неправильно понимаю?

Великая карма? как же ты устроена?

Reading time1 min
Views519
Вот я собственно не понял как же работает карма. В хабрахелпе сказано что если карма больше 2-х — то можно выставлять комментариям репутацию. Вчера так и было. Но когда я поставил пару оценок — выставление репутации для каментов стали неактивны, хотя карма вроде выше 2-х.

Где я что неправильно понимаю?

log4php или что-то другое?

Reading time1 min
Views1.6K
Вот столкнулся с тем что нужно из многих потоков приложения нужно писать в логи в один и тот же файл (нет в базу не подходит)

Рассмотрев варианты с flock — понял что время на то чтобы другой поток получил лок для записи в файл довольно таки велико — отказался.

Нашел проект log4php — это порт на пхп от проекта log4j

Читать дальше →

Information

Rating
Does not participate
Registered
Activity