sfDoctrineActAsSignablePlugin и оптимизация запросов к БД

При использовании этого плагина мы часто забираем записи из БД и показываем, кто же их создал или редактировал.
Если выводим только одну запись, то всё ОК.

Но если выводить список таких записей, то обнаружим, что на каждую запись появляется по запросу для получения Creator'a и Updator'a. Что же делать? А вот что:
Было — Doctrine_Core::getTable('Posts')->findAll()
Стало — Doctrine_Core::getTable('Posts')->createQuery('a, a.Creator, a.Updator')
И получаем нужные джоины автоматом.

Собственно, данная техника работает не только для actAs Signable. Это поможет уменьшить количество запросов при получении любых связанных записей.

Why I like Ubuntu?

Last time I installed it about a year ago (10.04 may be). It was like Ubuntu - quietly simple, kind and beautiful.

Now I'm installing 11.10 and writing this post while I wait.

Pretty good stuff.
Installer became user-friendly for 95%.

It prompts to download mp3 and so on packages.
It wants your wi-fi to get updates and localization pack.
It already copying files while you choose time zone and keyboard layout.
It wants to make your avatar from your notebook's camera.

Simply WOW.

FYI: how to launch Firefox while you see progress bar and 'installing...'.
1) click on sound icon
2) launch Banshee
3) go to Banshee - Browse home page
4) voila - profit!

So Firefox isn't all - you can listen music, play with webcam and chat with friends.

Time to finish writing - it's installed and wants to reboot.

Как не заниматься copy-paste в конфигурации Apache

Стандартная ситуация copy-paste

(используем debian unstable, apache2-mpm-itk) — добавить виртуалхост в Apache: логин под рута, переходим в sites-available, копируем существующий/создаём новый файл vhost-а, редактируем его, заменяя, по большей части, только document root, пользователя и пути для логов. В уме программиста появляется слово — переменные. Их всего 4-5, а ради их замены приходится копировать 1КБ одинаковой информации. Именно об этом я думал, когда начал гуглить «using vars in apache config».

Что предлагает нам индеец?

Задаём внешнюю переменную в /etc/apache/envvars, юзаем <IfDefined> в конфиге. Жутко неудобно, потому как шаблон виртуалхоста из этого слепить не получится.

Mod_macro.so спешит на помощь

Препрекраснейшая вещь, найти можно на http://www.cri.ensmp.fr/~coelho/mod_macro/.
Что предлагают:
  1. задаём макрос в каком-нибудь /etc/apache2/conf.d/macro-vhost
    1. ## Define a VHost Macro.
    2. <Macro VHost $host $port $dir>
    3. Listen $port
    4. <VirtualHost $host:$port>
    5. DocumentRoot $dir
    6. <Directory $dir>
    7. # do something here...
    8. </Directory>
    9. # limit access to intranet subdir.
    10. <Directory $dir/intranet>
    11. order deny,allow
    12. deny from all
    13. allow from 10.0.0.0/8
    14. </Directory>
    15. </VirtualHost>
    16. </Macro>
  2. генерируем виртуалхосты
    1. ## Use of VHost with different arguments.
    2. Use VHost www.apache.org 80 /projects/apache/web
    3. Use VHost www.perl.com 8080 /projects/perl/web
    4. Use VHost www.ensmp.fr 1234 /projects/mines/web



  3. профит?!