+2.27
5 читателей, 17 топиков

Компилятор Brainfuck в PHP на PHP с оптимизацией

PHP
Всем привет.
В последнее время здесь часто появляются посты про интерпретаторы и даже компиляторы Brainfuck на различных языках. Вот и я решил написать хабрастатью о создании компилятора с оптимизацией кода из Brainfuck в PHP, написанного на PHP.

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

ZABBIX: сделаем жизнь красивее

PHP
Здравствуйте, с недавнего времени в нашей конторе внедряется система мониторинга ZABBIX. Всем она хороша да прекрасна (споры можно везти долго на эту тему), только вот нас никак не устраивало две вещи:
1. Хотелось, чтобы на странице «Последние данные» каждый элемент данных подсвечивался бы цветом в зависимости от статуса триггера. Это очень наглядно.
2. На графиках вертикальная ось по умолчанию отображает только цифры (это конечно логично), но не очень удобно, когда смотришь, к примеру, пинг узла… Можно еще привыкнуть к нулям и единицам там, но вот значения в виде 0.1, 0.2, 0.3… совсем выглядят дико. Поэтому мы и задались целью сделать так, чтобы лишние значения не отображались, а нужные показывались, к примеру, «Доступен» или «Не доступен».

Как у нас это получилось смотреть под хабракатом.

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

Перестановка символьных значений местами без использования промежуточной переменной в PHP

PHP

Вводная


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

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

Собственно созерцание этих алгоритмов навело меня на мысль о возможности перестановки строковых (символьных) значений.

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

Sliding Expiration в memcached

PHP
Разрабатывая в основном под .NET столкнулся с тем, что в memcached отсутствует Sliding Expiration вариант хранения данных.

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

Будут рассмотрены только Get и Set операции, т.к. остальные делаются по аналогии. Increment / Decrement тут не поддерживаются.

Выглядело это примерно так:

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

Оптимизация формирования страницы каталога web-магазина с множеством фильтров

PHP
В одном из разработанных мною движков сайтов требовалось оптимизировать процесс формирования страницы каталога интернет-магазина с фильтрами выбора товаров.

Cайт представляет из себя онлайн-каталог б/у бытовой техники сети оффлайн магазинов Украины. Все товары на сайте фильтруются по следующим критериям:

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

CakePHP 2.0-dev released

PHP
В канун Нового Года команда CakePHP преподнесла всем подарок: вышел первый релиз второй ветки поплуярного фреймворка — CakePHP 2.0.0-dev. Этот релиз содержит множество изменений, несовместимых с предыдущими версиями кейка. По словам разработчиков, этот релиз пока еще сыроват и не предназначен для использования «в бою». Для работы CakePHP 2.0.x потребуется как минимум PHP 5.2.6 (наконец-то разработчики отказались от поддержки PHP4 и PHP5 < 5.2.6). Подробности по катом.

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

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

PHP
PHP продолжает развиваться и с каждой новой версией радует всякими плюшками.
Вот захотел поделится интересной идеей использования статических классов на php.

Задачи которые должен был реализовывать класс:
1. Уменьшать количество буков которые надо набирать(минимум лишней писанины)
2. Соединение с базой должно происходить непосредственно при необходимости(перед запросом)
3. Упростить жизнь, если в дальнейшем захочется сменить базу данных.


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