Pull to refresh
7
0
Дмитрий @Joka

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

Send message

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

Reading time1 min
Views603
Существует сторонняя библиотека для 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 не выдает никаких ошибок, просто ничего не возвращает в ответ, как будто совпадений не было вообще по всем значениям регулярных выражений, а не только по некорректному.

Возможно разработчик библиотеки так и задумывал ее работу, но это доставляет определенные проблемы. Просто будьте осторожны.
Total votes 1: ↑1 and ↓0+1
Comments0

Пишем свой плагин для 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.
Total votes 31: ↑22 and ↓9+13
Comments6

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

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

В данной статье я бы хотел остановиться на том, как правильно нужно писать SRS.
Total votes 58: ↑56 and ↓2+54
Comments30

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

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

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

Спасибо
Total votes 11: ↑4 and ↓7-3
Comments6

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

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

Zend Studio 6.1 не поддерживает цветовые схемы в принципе. Осталось ручками создавать интерфейс под себя. Создал — выкладываю Вам темную тему.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments19

SQA в PHP

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

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

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

спасибо за внимание
Total votes 24: ↑20 and ↓4+16
Comments43

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

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

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

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

UPD: уже ищет нормально — а утром не искал :)
Total votes 17: ↑12 and ↓5+7
Comments28

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments20

Information

Rating
Does not participate
Registered
Activity