ЖЖ от 2005-10-21 15:13:00
«Пуще прежнего бранится старуха,
Не даёт старику мне…»
Регулярные выражения наглядно

Увидел у Cooler’a ссылку на замечательную программу — The Regex Coach. Есть версия для Linux и Windows. Программа позволяет визуально проверять регулярные выражения — смотреть дерево, замены, совпадения и т. п. Очень рекомендую.
Разделяемая память и PHP
В основном на PHP пишут небольшие проекты, поэтому литература кишит примерами «как сделать сайт в три странички». Но, тем не менее, только простыми сайтами дело не ограничивается. Когда приходится делать производительные проекты, существует множество ухищрений и решений, одно из которых — использовать разделяемую память, там где кешировать данные в статические файлы не получается. Различных API для использования разделяемой памяти много, только в одном PHP есть shmop, shm_* и Memcache, что несколько осложняет дело.
Я сделал
В настоящий момент поддерживаются следующие API:
- eAccelerator
- Turck MMCache
- APC
- Shmop
- Apache Notes
- Memcached
- System V (имена переменных до 4х символов)
- SQLite (база данных создаётся в памяти)
- Sharedance
- File (данные хранятся в файлах)
Brainfuck
Дело давнее, но около месяца назад, поддавшись
Модуль к PHP написан в формате PEAR, т. е. его можно либо использовать непосредственно, либо исталлировать в составе PEAR.
Нельзя сказать, что я компилятор проводит глубокую оптимизацию, но, например, код
<?php
$in = array(0, $id = 0);
$d = array_fill(-65535, 65535, $di = 0);
$d[$di+1]+= $d[$di];
$d[$di+2]+= $d[$di]*2;
$d[$di] = 0;
$d[$di+1]+= $d[$di];
if ($d[$di]) $d[$di+2] = 0;
$d[$di] = 0;
$d[$di+1]+= $d[$di];
$d[$di] = 0;В сам
Тег для календаря

Лично для меня событие недели — появление Opera 9.0 Technology Preview 1. Помимо поддержки XSLT, появления аналога настроек FireFox, только сделанных для человека, а не робота, поддержки Canvas, некоторых селекторов CSS3 и прочего, несомненный интерес представляет поддержка стандарта WebForms 2 — обратносовместимого расширения HTML для разработки различных интерфесов ввода. В частности, картинка на скриншоте делается
<input type="datetime" step="120" name="start">и это далеко не самая впечататляющая демострация — просмотрите стандарт, хотя бы по диагонали. Жаль, что это всё удасться использовать не ранее чем лет через пять, прежде всего