POE - portable multitasking and networking framework for Perl.

31 июля 2007 12:54
Тэги: ,
Оставить комментарий
А по-русски, платформонезависимый фреймворк для создания многозадачных и сетевых приложений на Perl.

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

Читать далее...
В закладки: Запомнить эту страницу В МоёМесто Забобрить Delicious Digg Добавить новость на МойКруг

Декоративная кнопка Обзор. Делаем невозможное.

9 июля 2007 11:41
Тэги: , , , , ,
12 Комментариев
Никогда бы не подумал, что буду что-то про верстку. Но жизнь штука странная. Да и люди бывают не очень продвинутые в web-технологиях и просят сделать вроде бы простые, но на первый взгляд невозможные вещи.
Думаю, все знают стандартный элемент формы для загрузки файлов. Вот он

А вот теперь попробуйте сделать его красивым. "Легко, ведь есть CSS!!!" - скажут многие, и многие будут правы. Но попробуйте сделать так

Слабо? Вот и мне сначала было слабо. Ведь заменить этот элемент нечем, этого требует безопасность. Вы же ведь не хотите, чтобы страничка умела сама по себе загрузить Ваш файл? Не найдя у себя в голове и в документации решения этой проблемы я решил спросить у Яндекса. Говорят там найдется все. И правда, нашлось. Ответ был короток: "Никак. Или так." Ничего больше Яндекс не нашел. Я изучил эту статью, но сделать как там у меня не получилось, видимо и не особо хотелось. Особо насторожил большой скрипт, который, при ближайшем рассмотрении, как оказалось, делает одну простую и не понятно зачем нужную вещь. Он просто ищет все элементы типа file и оформляет их как положено. Но зачем нам такая радость, если у нас на странице целых 3 таких элемента? Правильно - не надо нам такого. Еще очень не понравился пример работы этой радости (самый последний по той ссылке). Сами попробуйте и поймете. Вот я и решил воспользоваться не самим способом, а только его идеей. За что огромное спасибо Michael McGrady. И у меня получилось. Причем от скрипта не осталось и следа.

А идея по сути проста.
В закладки: Запомнить эту страницу В МоёМесто Забобрить Delicious Digg Добавить новость на МойКруг

POE::Component::Client::HTTP

10 мая 2007 12:58
Тэги: ,
Оставить комментарий
Вот блин...
Неожиданно наткнулся на одну проблемку.
При написании скрипта на Perl нашел то ли баг, то ли не знаю что в модуле POE::Component::Client::HTTP. Дело в том, что во время выполнения запроса при получении объекта HTTP::Response в заголовке запроса исчезают куки. Вернее не исчезают, а остается только последняя. В версии клиента 0.57 (именно она ставится при помощи модуля ppm) все было нормально, в версиях 0.79 и 0.80 (последняя на сегодня) этот "баг" был мной обнаружен. Сейчас буду изучать код в поисках истины.

Нашел.
Перебрал весь код POE::Component::Client::HTTP. А дело оказалось даже не в нем
Проблема в POE::Filter::HTTPHead строка 90.
$self->[WORK_RESPONSE]->header($1, $2);
Дело в том, что метод header добавляет заголовок в объект HTTP::Response, но если такой заголовок уже есть, он перезаписывается.

Рассмотрим след. заголовок:
HTTP/1.1 200 OK
Cache-Control: no-cache, pre-check=0, post-check=0
Connection: Close
Date: Mon, 22 Jan 2007 10:19:49 GMT
Pragma: no-cache
Server: Apache/2.0.53 (ASPLinux)
Content-Type: text/html; charset=WINDOWS-1251
Expires: 0
Set-Cookie: phpbb2mysql_data=a%3A0%3A%7B%7D; expires=Tue, 22 Jan 2008 10:19:49 GMT; path=/;
Set-Cookie: phpbb2mysql_sid=79cd66857632c3e75c16d0b8
4034a95a; path=/;
Set-Cookie: phpbb2mysql___lastvisit=1169461190; expires=Fri, 01 Jan 1971 00:00:00 GMT; path=/;
Set-Cookie: phpbb2mysql___f_all=0; path=/;
Set-Cookie: phpbb2mysql___f=a%3A0%3A%7B%7D; path=/;
Set-Cookie: phpbb2mysql___t=a%3A0%3A%7B%7D; path=/;
Set-Cookie: phpbb2mysql___uf=0; expires=Tue, 22 Jan 2008 10:19:50 GMT; path=/;
Set-Cookie: phpbb2mysql___u=a%3A0%3A%7B%7D; expires=Tue, 22 Jan 2008 10:19:50 GMT; path=/;

После обработки этим фильтром мы получим:
HTTP/1.1 200 OK
Cache-Control: no-cache, pre-check=0, post-check=0
Connection: Close
Date: Mon, 22 Jan 2007 10:19:49 GMT
Pragma: no-cache
Server: Apache/2.0.53 (ASPLinux)
Content-Type: text/html; charset=WINDOWS-1251
Expires: 0
Set-Cookie: phpbb2mysql___u=a%3A0%3A%7B%7D; expires=Tue, 22 Jan 2008 10:19:50 GMT; path=/;

Т.о. мы потеряли все куки кроме последней.
Исправляется данная проблема просто. В строке 90 вместо $self->[WORK_RESPONSE]->header($1, $2) пишем $self->[WORK_RESPONSE]->push_header($1, $2).

от 22.01.2007
В закладки: Запомнить эту страницу В МоёМесто Забобрить Delicious Digg Добавить новость на МойКруг

Поехали

12 апреля 2007 9:30
Тэги: ,
Оставить комментарий
Сегодня на Яndex прилетело НЛО.

ya_ufoFlamber.ru

Кстати. С днем космонавтики!
В закладки: Запомнить эту страницу В МоёМесто Забобрить Delicious Digg Добавить новость на МойКруг

RSS

7 апреля 2007 12:43
Тэги:
Оставить комментарий

Только что сделал себе RSS 2.0


В закладки: Запомнить эту страницу В МоёМесто Забобрить Delicious Digg Добавить новость на МойКруг

Теги

Страницы

Ссылки

Новости XML и обзоры

Друзья

Дамочка в поиске Дамочка в поиске
Отражение в сети

META

Valid XHTML
XHTML Friends Network
RSS 2.0 Feed
Читать в Яндекс.Ленте
Add to Google
количество читателей онлайн и всего
© 2007 Gorinich.net