Sunday, November 29, 2009

Catalyst mod_perl Deployment

Недавно пришлось мне разворачивать catalyst-овское приложение под Apache. Посмотрел я документацию Catalyst::Manual::Cookbook В частности есть там пример конфигурации апача, а именно:

PerlSwitches -I/var/www/MyApp/lib
PerlModule MyApp

<Location />
  SetHandler modperl
  PerlResponseHandler MyApp
</Location>

Сей конфиг работать у меня отказался. Пошел читать про modperl, в результате нашел слудующий пример тут:
<VirtualHost ...>
  ServerName dev1
  PerlOptions +Parent
  PerlSwitches -I/home/dev1/lib/perl
</VirtualHost>
В конечном счете добавление опции

PerlOptions +Parent

решает проблему

Странно как-то... в мануалах писать нерабочие конфиги, посмотрел баг репорт по этому мануалу. Оказывает что есть #31164: Catalyst::Manual::Cookbook mod_perl configuration incorrect? (обратите внимание что баг за Mon Dec 03 07:20:12 2007) Тут человек пишет о такой же проблеме, но предлагает другое решение. Но мануал по сей день не исправлен.

Monday, November 16, 2009

Закругление углов с помощью таблицы (проверено в IE7 и Firefox 3.0.15)

По моему мнение самый универсальный способ закругления углов в IE это через таблицу. Сразу покажу что мы получим в результате:


Для этого нам понадобятся четыре угла, которые нужно нарисовать, я использовал GIMP:






уголки маленкие, 6х6 пикселей, в моем случае нужны были именно такие. И четыре картинки для бордеров (картинки есть, они просто очень мелкие, бордер всего 1px):







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

Сам HTML код:

<table style="background-color: white;" width="15%" cellpadding="0" cellspacing="0" border="0">
 <tr>
  <td><img src="corner_top_left.gif" width="6" height="6"/></td>
  <td height="6px" style="background-image: url('border_top.gif'); background-repeat: repeat-x; height: 6px;"></td>
  <td><img src="corner_top_right.gif" width="6" height="6"/></td>
 </tr>
 <tr>
  <td height="6px" style="background-image: url('border_left.gif'); height: 6px;"></td>
  <td width="100%">
   Содержимое округлого блока тут
  </td>
  <td height="6px" style="background-image: url('border_right.gif'); height: 6px;"></td>
 </tr>
 <tr>
  <td><img src="corner_bottom_left.gif" width="6" height="6"/></td>
  <td height="6px" style="background-image: url('border_bottom.gif'); background-repeat: repeat-x; height: 6px;"></td>
  <td><img src="corner_bottom_right.gif" width="6" height="6"/></td>
 </tr>
</table>


Внимание! Для IE7 имеет разница форматирование HTML. Что это означает? Означает следующее, что записи:

<tr>
<td>Bla bla bla bla</td>
</tr>

и

<tr><td>Bla bla bla bla</td></tr>

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

PS: Ненавижу IE !

Saturday, November 14, 2009

Изменение cpan-овских зеркал

Ставлю модуль с cpan и судя по всему сейчас с http на perl.org какие-то проблемы, по ftp все скачивается нормально. Не очень хочется сидеть и ждать пока пройдет тайм аут и модуль таки скачается, особенно если надо много чего поставить. Наблюдается вот такая вот картина:

Fetching with LWP:
http://www.perl.org/CPAN/authors/id/F/FL/FLORA/namespace-clean-0.11.tar.gz

<дилетельное ожидание>

LWP failed with code[500] message[read timeout]
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors/id/F/FL/FLORA/namespace-clean-0.11.tar.gz
Checksum for /root/.cpan/sources/authors/id/F/FL/FLORA/namespace-clean-0.11.tar.gz ok


Для решения проблемы идем на http://www.cpan.org/SITES.html и выбираем там себе подходящий сайт, мой выбор пал на http://cpan.makeperl.org/. Далее запускаем cpan-овскую консоль (не забываем про sudo кому надо):

perl -MCPAN -e shell


и пишем там

cpan[37]> o conf urllist http://cpan.makeperl.org/
Please use 'o conf commit' to make the config permanent!


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

o conf commit

Для добавление урлов в список:

o conf urllist push http://cpan.makeperl.org/
o conf urllist unshift http://cpan.makeperl.org/


для удаления:

o conf urllist shift
o conf urllist pop


Список зеркал можно посмотреть следующим образом:

o conf urllist