<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 
>

<channel>
	<title>Denya's blog &#187; webdev</title>
	<atom:link href="http://blog.denyamsk.ru/categories/webdev/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.denyamsk.ru</link>
	<description>...техно-дыбро блог...</description>
	<lastBuildDate>Tue, 18 May 2010 16:17:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>В закладки: UserCSS-сборник; блог Максима Деркачева о&#160;Python/Django</title>
		<link>http://blog.denyamsk.ru/2007/09/13/new-bookmarks-usercss-and-python/</link>
		<comments>http://blog.denyamsk.ru/2007/09/13/new-bookmarks-usercss-and-python/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 04:30:37 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2007/09/13/new-bookmarks-usercss-and-python/</guid>
		<description><![CDATA[

User CSS — пользовательские каскадные таблицы&#160;стилей



CSS — это Cascading Style Sheets, что по-русски означает примерно каскадные таблицы стилей. User — пользователь. Вот и получается: пользовательские каскадные таблицы стилей. Как-то&#160;так.
Пользовательскими они называются потому, что применяются обычными пользователями браузеров. Ну а CSS — это технология&#160;такая.
Никита Васильев сделал сайт, на котором собирает всяческие полезные User CSS. Например, сейчас [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>
<a href="http://usercss.ru/" >User CSS — пользовательские каскадные таблицы&nbsp;стилей</a></p>
<div style="width: 359px; height: 253px; border: 3px black solid; float: left; margin: 4px 8px 2px 0px;" >
<div style="width: 353px; height: 247px; border: 3px white solid;" ><a href="http://usercss.ru/" ><img src="http://blog.denyamsk.ru/wp-content/uploads/2007/09/2007-09-13_074539.png"  alt="UserCSS screenshot"  style="border: 1px black solid;" /></a></div>
</div>
<p><q  style="font-style: italic; color: grey; font-family: Georgia;font-style: italic; color: grey; font-family: Georgia;">CSS — это Cascading Style Sheets, что по-русски означает примерно каскадные таблицы стилей. User — пользователь. Вот и получается: пользовательские каскадные таблицы стилей. <span style="white-space:nowrap" >Как-то</span>&nbsp;так.<br/>
Пользовательскими они называются потому, что применяются обычными пользователями браузеров. Ну а CSS — это технология&nbsp;такая.</q></p>
Никита Васильев сделал сайт, на котором собирает всяческие полезные User CSS. Например, сейчас там есть: стиль, убирающий рекламу; стиль, который раскрашивает ссылки на страничке таким образом, чтобы они были читабельны; стиль, конвертирующий html в bbcode; стиль, пририсовывающий к ссылкам пиктограммы в зависимости от типов файлов и&nbsp;т.д.&nbsp;
</li>
<li style="clear: both;" ><a href="http://www.ragbag.ru/" >The rag bag of Maxim&nbsp;Derkachev</a></li>
<div style="width: 404px; height: 252px; border: 3px black solid; float: right; margin: 4px 0px 2px 8px;" >
<div style="width: 398px; height: 246px; border: 3px white solid;" ><a href="http://www.ragbag.ru/" ><img src="http://blog.denyamsk.ru/wp-content/uploads/2007/09/2007-09-13_080856.png"  alt="ragbag.ru screenshot for post"  style="border: 1px black solid;" /></a></div>
</div>
<p>Людей, пишуших о&nbsp;Python и&nbsp;Django в рунете, похоже, не особо много. Ну, <a href="http://softwaremaniacs.org/blog/" >Иван Сагалаев</a>&nbsp;&mdash; человек известный, его многие знают и читают. А вот про Максима Деркачева я узнал только сегодня из комментариев Сагалаева в одной из его&nbsp;же&nbsp;заметок.</p>
Хорошим языком рассказано, что такое декораторы, что такое дескрипторы, около десятка статей посвящено работе с Django. Короче, самое то, что нужно мне и любому другому человеку, начавшему изучать&nbsp;Python/Django.<br/>
Жаль, что Максим пишет не очень часто. За год существования блога, заметок набралось не более двух-трех десятков. Зато делает он это регулярно&nbsp;:-)
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2007/09/13/new-bookmarks-usercss-and-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>Яндекс-like поиск своими&#160;руками</title>
		<link>http://blog.denyamsk.ru/2007/09/11/yandeks-like-poisk-svoimi-rukami/</link>
		<comments>http://blog.denyamsk.ru/2007/09/11/yandeks-like-poisk-svoimi-rukami/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 23:46:16 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2007/09/11/yandeks-like-poisk-svoimi-rukami/</guid>
		<description><![CDATA[Классная статья на Хабре про&#160;то, как быстро слепить хороший поисковйы&#160;механизм.
Про учет морфологии я думал, что&#160;все намного сложнее. Оказывается, есть неплохие простые&#160;решения.
Ну а&#160;про soundex (&#171;возможно, вы искали?&#187;) вообще первый раз слышу. Все это очень&#160;интересно
Хабрахабр: Яндекс-like поиск своими&#160;руками.
P.S.&#160;Заодно, где-то рядом там нашел линк на &#171;правильную&#187; реализацию PHP-функции strip_tags. Так, на всякий случай в&#160;закладки.
P.S.S.&#160;Нашел забавный блог &#171;Коротко и [...]]]></description>
			<content:encoded><![CDATA[<p>Классная статья на Хабре про&nbsp;то, как быстро слепить хороший поисковйы&nbsp;механизм.<br/>
Про учет морфологии я думал, что&nbsp;все намного сложнее. Оказывается, есть неплохие простые&nbsp;решения.<br/>
Ну а&nbsp;про soundex (&laquo;возможно, вы искали?&raquo;) вообще первый раз слышу. Все это очень&nbsp;интересно</p>
<p><a href="http://www.habrahabr.ru/blog/webdev/24953.html" >Хабрахабр: Яндекс-like поиск своими&nbsp;руками</a>.</p>
<p>P.S.&nbsp;Заодно, <span style="white-space:nowrap" >где-то</span> рядом там нашел линк на &laquo;правильную&raquo; <a href="http://forum.dklab.ru/php/advises/Strip_tags_smartKorrektniyAnalogStrip_tags.html" >реализацию PHP-функции strip_tags</a>. Так, на всякий случай в&nbsp;закладки.<br/>
P.S.S.&nbsp;Нашел забавный блог &laquo;<a href="http://tips.xet.ru/" >Коротко и ясно</a>&raquo;. Просто полезные кусочки кода... Там есть и стеммер, который у слов корни вырезает, если вариант реализации русского soundex&#39;а. Вроде, неплохо, попробуем&nbsp;почитать.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2007/09/11/yandeks-like-poisk-svoimi-rukami/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>Загрузить фотографию.&#160;Choose..</title>
		<link>http://blog.denyamsk.ru/2007/04/01/zagruzit-fotografiyu-choose/</link>
		<comments>http://blog.denyamsk.ru/2007/04/01/zagruzit-fotografiyu-choose/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 08:38:05 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[notes]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2007/04/01/zagruzit-fotografiyu-choose/</guid>
		<description><![CDATA[Уважаемые вебдевлоперы, когда вы делаете функцию &#171;закачать фотку&#187;, предусматривайте пожалуйста возможность указать URL, откуда эту самую фотку можно вытянуть. Некоторые называют это&#160;transload.
Не всегда&#160;же у меня картинка на HDD&#160;лежит...
Интересно, вот если я скажу, что этот момент меня напряг при посещении habrahabr.ru и moikrug.ru, это что-нибудь&#160;изменит?
]]></description>
			<content:encoded><![CDATA[<p>Уважаемые вебдевлоперы, когда вы делаете функцию &laquo;закачать фотку&raquo;, предусматривайте пожалуйста возможность указать URL, откуда эту самую фотку можно вытянуть. Некоторые называют это&nbsp;transload.</p>
<p>Не всегда&nbsp;же у меня картинка на HDD&nbsp;лежит...</p>
<p>Интересно, вот если я скажу, что этот момент меня напряг при посещении habrahabr.ru и moikrug.ru, это <span style="white-space:nowrap" >что-нибудь</span>&nbsp;изменит?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2007/04/01/zagruzit-fotografiyu-choose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>IBM developerWorks Россия: Изучаем&#160;PHP</title>
		<link>http://blog.denyamsk.ru/2007/01/20/ibm-developerworks-rossiya-izuchaem-php/</link>
		<comments>http://blog.denyamsk.ru/2007/01/20/ibm-developerworks-rossiya-izuchaem-php/#comments</comments>
		<pubDate>Sat, 20 Jan 2007 16:54:11 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[documentation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2007/01/20/ibm-developerworks-rossiya-izuchaem-php/</guid>
		<description><![CDATA[На сайте IBM developerWorks Россия появился интересный мануал &#171;Изучаем PHP&#187;.&#160;

Цель этого учебного пособия&#160;&#8212; научить вас писать на языке PHP приложения, поддерживающие workflow. Мы начнем с того, что научимся регистрироваться с определенным именем пользователя и паролем, загружать файлы на сервер из браузера, просматривать загруженные файлы. В дальнейшем для пользователей с административными полномочиями мы разработаем специальную процедуру [...]]]></description>
			<content:encoded><![CDATA[<p>На сайте <a href="http://www.ibm.com/developerworks/ru/" >IBM developerWorks Россия</a> появился интересный мануал &laquo;Изучаем PHP&raquo;.&nbsp;</p>
<blockquote  style="border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;">
<p><img src="http://static.php.net/www.php.net/images/php.gif"  style="float: left; margin: 5px 5px 5px 5px; " />Цель этого учебного пособия&nbsp;&mdash; научить вас писать на языке PHP приложения, поддерживающие workflow. Мы начнем с того, что научимся регистрироваться с определенным именем пользователя и паролем, загружать файлы на сервер из браузера, просматривать загруженные файлы. В дальнейшем для пользователей с административными полномочиями мы разработаем специальную процедуру одобрения документов для публичного доступа. В последующих двух частях этой серии (Часть 2 и Часть 3) мы рассмотрим HTTP-аутентификацию, использование потоков данных, обработку исключений и другие важные&nbsp;вопросы.</p>
</blockquote>
<p>В <a href="http://www-128.ibm.com/developerworks/ru/edu/os-phptut1/" >первой части</a> даются базовые понятия языка, на примерах объясняется синтаксис PHP; рассматривается создание базовой страницы, переменные, циклы и условные операторы if-then, массивы и функции, доступ к базам данных, включение файлов с помощью оператора include&nbsp;</p>
<p>Во <a href="http://www-128.ibm.com/developerworks/ru/edu/os-phptut2/" >второй части</a> рассматривается создание сессий, передача информации между сессиями, процедура загрузки файлов на сервер из браузера и использование XML для хранения и отображения информации о&nbsp;файлах.</p>
<p>В <a href="http://www-128.ibm.com/developerworks/ru/edu/os-phptut3/" >третьей части</a> описывается процедура добавления HTTP-аутентификации, потокового перемещения документов из каталогов, закрытых для доступа из сети, обработки исключений. Вводится понятие объекта и с учетом этого понятия изменяется структура&nbsp;приложения.</p>
<p>Короче, довольно кратко и интересно написано :) Почерпнул для себя много нового из второй-третьей&nbsp;части...</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2007/01/20/ibm-developerworks-rossiya-izuchaem-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<slash:comments>2</slash:comments>
	</item>
		<item>
		<title>Opera / Developer&#160;Tools</title>
		<link>http://blog.denyamsk.ru/2006/11/18/opera-developer-tools/</link>
		<comments>http://blog.denyamsk.ru/2006/11/18/opera-developer-tools/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 18:42:04 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[opera]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2006/11/18/opera-developer-tools/</guid>
		<description><![CDATA[
На сайте Dev.Opera появилась пара инструментов для веб-разработчиков аля Web Developer для&#160;Файрфокса.
Называется чудо Developer Tools. Инструмента всего три, все приятные и&#160;полезные.
DOM&#160;Console
Этот инструмент строит довольно симпатичную DOM-модель документа. Позволяет просматривать и изменять свойства и стили элементов; удалять элементы со страницы; визуально отображать значения параметров типа width, height padding, margin и&#160;пр.
Чтобы установить&#160;&#8212; нажмите на ссылку&#160;или перетащите ее [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dev.opera.com/img/logo-beta.gif"  alt="Dev.Opera logo"  style="float: left;" /><br/>
На сайте <a href="http://dev.opera.com" >Dev.Opera</a> появилась пара инструментов для веб-разработчиков аля Web Developer для&nbsp;Файрфокса.</p>
<p>Называется чудо <a href="http://dev.opera.com/articles/view/opera-developer-tools/" >Developer Tools</a>. Инструмента всего три, все приятные и&nbsp;полезные.</p>
<h3>DOM&nbsp;Console</h3>
<p>Этот инструмент строит довольно симпатичную DOM-модель документа. Позволяет просматривать и изменять свойства и стили элементов; удалять элементы со страницы; визуально отображать значения параметров типа width, height padding, margin и&nbsp;пр.</p>
<p>Чтобы установить&nbsp;&mdash; нажмите на ссылку&nbsp;или перетащите ее на одну из панелей инструментов браузера: <a href="opera:/button/Go%20to%20page%2C%20%22javascript%3A(function()%7Bvar%20ele%3Ddocument.getElementsByTagName('head')%5B0%5D.appendChild(document.createElement('script'))%3Bele.type%3D'text%2Fjavascript'%3Bele.src%3D'http%3A%2F%2Fdevfiles.myopera.com%2Farticles%2F59%2FdomConsole_2.js'%3Bele.parentNode.removeChild(ele)%3BdomConsole_2.open()%3B%7D)()%3B%22%2C%20%2C%20%22DOM%20Console%22%2C%20%22Panel%20Bookmarks%22" >DOM&nbsp;Console</a>.</p>
<h3>CSS&nbsp;Editor</h3>
<p>Этот инструмент предоставляет функции приятного и удобного просмотра, а также ЖИВОГО редактирования CSS-файлов, подцепленных к документу. После редактирования, результат можно экспортировать в отдельный&nbsp;файл.</p>
<p>Чтобы установить&nbsp;&mdash; нажмите на ссылку&nbsp;или перетащите ее на одну из панелей инструментов браузера: <a href="opera:/button/Go%20to%20page%2C%20%22javascript%3A(function()%7Bvar%20ele%3Ddocument.getElementsByTagName('head')%5B0%5D.appendChild(document.createElement('script'))%3Bele.type%3D'text%2Fjavascript'%3Bele.src%3D'http%3A%2F%2Fdevfiles.myopera.com%2Farticles%2F59%2FstyleSheets.js'%3Bele.parentNode.removeChild(ele)%3BcssConsole.open()%3B%7D)()%3B%22%2C%20%2C%20%22CSS%20Editor%22%2C%20%22Bookmark%20Unvisited%22" >CSS&nbsp;Editor</a>.</p>
<h3>DOM&nbsp;Snapshot</h3>
<p>С помощью этого инструмента вы сможете увидеть исходный код страницы ТАК, как&nbsp;его видит и обрабатывает сам&nbsp;браузер.</p>
<p>Чтобы установить&nbsp;&mdash; нажмите на ссылку&nbsp;или перетащите ее на одну из панелей инструментов браузера: <a href="opera:/button/Go%20to%20page%2C%20%22javascript%3A(function()%7Bvar%20ele%3Ddocument.getElementsByTagName('head')%5B0%5D.appendChild(document.createElement('script'))%3Bele.type%3D'text%2Fjavascript'%3Bele.src%3D'http%3A%2F%2Fdevfiles.myopera.com%2Farticles%2F59%2FliveSource.js'%3Bele.parentNode.removeChild(ele)%3BliveSource.open()%3B%7D)()%3B%22%2C%20%2C%20%22DOM%20Snapshot%22%2C%20%22Select%20author%20mode%22" >DOM&nbsp;Snapshot</a>.</p>
<p>P.S.&nbsp;Не забывайте, что есть еще и неофициальный инструмент <a href="http://operawiki.info/WebDevToolbar" >WebDevToolbar</a>, в котором реализован похожий функционал. Инсталлируется он точно так же&nbsp;&mdash; путем перестаскивания ссылок на одну из панелей инструментов. Функционала в WebDevToolbar&#39;е реализовано очень много. Если вы занимаетесь веб-разработкой&nbsp;&mdash; посмотрите, наверняка найдете <span style="white-space:nowrap" >что-нибудь</span> полезное&nbsp;:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2006/11/18/opera-developer-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>WebDev /&#160;&lt;button&gt;</title>
		<link>http://blog.denyamsk.ru/2006/04/06/webdev-button/</link>
		<comments>http://blog.denyamsk.ru/2006/04/06/webdev-button/#comments</comments>
		<pubDate>Thu, 06 Apr 2006 16:49:57 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2006/04/06/webdev-button/</guid>
		<description><![CDATA[Во избежание всяческих проблем, хочу напомнить, что&#160;по стандарту у кнопки, созданной тегом &#60;button&#62; хорошо&#160;бы указать аттрибут&#160;type.
type =&#160;submit&#124;button&#124;reset

submit: Создает кнопку отправки формы. ЗНАЧЕНИЕ ПО&#160;УМОЛЧАНИЮ!
reset: Создает кнопку очистки&#160;полей
button: Создает обыкновенную кнопку, нажатие на которую не вызывает отпраку&#160;формы.

Все дело в том, что IE плевал на&#160;все стандарты, и&#160;по умолчанию type=button. А вот Опера и FF стандартам соответствуют в большей [...]]]></description>
			<content:encoded><![CDATA[<p>Во избежание всяческих проблем, хочу напомнить, что&nbsp;по стандарту у кнопки, созданной тегом <strong>&lt;button&gt;</strong> хорошо&nbsp;бы указать аттрибут&nbsp;type.</p>
<p>type =&nbsp;submit|button|reset</p>
<ul>
<li><em>submit</em>: Создает кнопку отправки формы. <strong>ЗНАЧЕНИЕ ПО&nbsp;УМОЛЧАНИЮ</strong>!</li>
<li><em>reset</em>: Создает кнопку очистки&nbsp;полей</li>
<li><em>button</em>: Создает обыкновенную кнопку, нажатие на которую не вызывает отпраку&nbsp;формы.</li>
</ul>
<p>Все дело в том, что IE плевал на&nbsp;все стандарты, и&nbsp;по умолчанию type=button. А вот Опера и FF стандартам соответствуют в большей мере. Соответственно, ежели вы про аттрибут type не знаете, вы будете долго удивляться, почему у&nbsp;вас при нажатии на кнопку отправляется форма&nbsp;:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2006/04/06/webdev-button/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>WebDev / PHP /&#160;Sessions</title>
		<link>http://blog.denyamsk.ru/2006/03/17/webdev-php-sessions/</link>
		<comments>http://blog.denyamsk.ru/2006/03/17/webdev-php-sessions/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 11:29:06 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2006/03/17/webdev-php-sessions/</guid>
		<description><![CDATA[Вы никогда не сталкивались с проблемой, когда после авторизации на сайте www.domain.ru вы переходите на domain.ru, а&#160;вас не&#160;узнают?
Или вот, случай из жизни. Заходите в интернет-магазин aaa.ru, в разделе comp.aaa.ru добавляете в корзину один товар, переходите в раздел audio.aaa.ru, а корзина опять пустая. И делай чего хочешь&#160;&#8212; НЕ&#160;РАБОТАЕТ!
Я сталкиваюсь с подобными проблемами КАЖДЫЙ ДЕНЬ. Куча форумов, [...]]]></description>
			<content:encoded><![CDATA[<p>Вы никогда не сталкивались с проблемой, когда после авторизации на сайте www.domain.ru вы переходите на domain.ru, а&nbsp;вас не&nbsp;узнают?<br/>
Или вот, случай из жизни. Заходите в интернет-магазин aaa.ru, в разделе comp.aaa.ru добавляете в корзину один товар, переходите в раздел audio.aaa.ru, а корзина опять пустая. И делай чего хочешь&nbsp;&mdash; НЕ&nbsp;РАБОТАЕТ!</p>
<p>Я сталкиваюсь с подобными проблемами КАЖДЫЙ ДЕНЬ. Куча форумов, интернет-магазинов... да тот&nbsp;же <a href="http://news2.ru" >news2.ru</a> тоже имеет эту&nbsp;проблему.</p>
<p>Попробуйте зайти на <a href="http://news2.ru" >news2.ru</a>, залогиниться, а потом зайти на <a href="http://www.news2.ru" >www.news2.ru</a>. Вам скажут: &laquo;Привет,&nbsp;Гость!&raquo;.</p>
<p>В принципе, в&nbsp;чем проблема&nbsp;&mdash; я догадался уже давно... Дело в том, что cookie, &laquo;ключик&raquo;, по которому сайт вас узнает, ставится на domain.ru, домен второго уровня. А вот в домене третьего уровня (www.domain.ru) cookie уже не видится. И идут&nbsp;косяки.</p>
<p>Полистав RFC, узналось, что можно поставить кукиз на&nbsp;<strong>.</strong>domain.ru<br/>
Обратите внимание на ТОЧКУ перед именем домена. Это значит, что кука будет доступна как и&nbsp;при обращении к domain.ru, так и&nbsp;во всех поддоменах ТРЕТЬЕГО уровня. Это то, что было нам нужно&nbsp;:-)</p>
<p>Как в PHP это делается? Просто! Функция&nbsp;<strong><a href="http://php.rinet.ru/manual/en/function.session-set-cookie-params.php" >session_set_cookie_params</a></strong>:</p>
<p><em>void</em> <strong>session_set_cookie_params</strong> ( <em>int</em> lifetime [, <em>string </em>path [, <em>string</em> domain [, <em>bool</em> secure]]]&nbsp;)</p>
<p><em>int</em> lifetime&nbsp;&mdash; время жизни кука. Обычно session_start(); ставит куку PHPSESSID с lifetime=0. То есть после закрытия браузера кук удалится и сессия закроется. Если поставить число (в секундах) побольше, то после закрытия браузера сессия не умрет сразу, в течение этого времени можно будет открыть сайт заново, и&nbsp;вы останетесь залогиненным, товар в корзине интернет-магазина останется на&nbsp;месте.</p>
<p><em>string</em> path&nbsp;&mdash; путь, начиная с которого кукиз будет действительным. &laquo;/&raquo;&nbsp;&mdash; значит, что прямо с корня. Кук будет виден и в http://aaa.ru/ и в&nbsp;http://aaa.ru/vobla<br/>
А если, например, передать функции значение path равное &laquo;/forum/&raquo;, то кукиз будет &laquo;виден&raquo; только из папки и подпапок forum: http://aaa.ru/forum, http://aaa.ru/forum/comp/, но&nbsp;не будет &laquo;виден&raquo; из: http://aaa.ru/,&nbsp;http://aaa.ru/chat/</p>
<p><em>string</em> domain&nbsp;&mdash; ключевой параметр, который обсуждался :-) Если вы хотите, чтоб кук был виден как&nbsp;по основному адресу http://aaa.ru, так и&nbsp;по адресу http://www.aaa.ru, то передайте функции значение параметра domain равное &laquo;.aaa.ru&raquo; и&nbsp;все будет&nbsp;тип-топ.</p>
<p>session_set_cookie_params() необходимо вызывать каждый раз перед session_start().&nbsp;</p>
<p>К сожалению, задать список доменов, из&nbsp;под которых будет виден cookie нельзя. Нельзя передать в&nbsp;эту функцию параметр domain типа &laquo;www.aaa.ru,comp.aaa.ru,audio.aaa.ru&raquo;. Тут уже нужно думать, как быть, что&nbsp;делать.</p>
<p>А вот Perl программисты думают сами. Можно точно так&nbsp;же поставить кукиз на&nbsp;.domain.ru<br/>
А можно поставить на domain.ru и на&nbsp;www.domain.ru<br/>
Это уж&nbsp;на&nbsp;что хватит фантазии :-) Вот так&nbsp;вот.</p>
<p>Удачи в webdev&#39;е, и&nbsp;не забывайте про такие&nbsp;&laquo;мелочи&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2006/03/17/webdev-php-sessions/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<slash:comments>7</slash:comments>
	</item>
		<item>
		<title>WebDev / Solitaire on&#160;JS</title>
		<link>http://blog.denyamsk.ru/2006/01/15/webdev-solitaire-on-js/</link>
		<comments>http://blog.denyamsk.ru/2006/01/15/webdev-solitaire-on-js/#comments</comments>
		<pubDate>Sun, 15 Jan 2006 14:07:05 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2006/01/15/webdev-solitaire-on-js/</guid>
		<description><![CDATA[Solitaire прямо у&#160;вас в браузере&#160;&#8212; написан на&#160;JavaScript&#39;е.
Вот она, мощь JS :) ИМХО, неплохой пример&#160;получился.
Поддержка&#160;браузерами:

Opera&#160;7+.
Mozilla/Firefox/Netscape&#160;6+.
Internet Explorer 5+ on Windows and&#160;Mac.
Konqueror 3+/Safari/OmniWeb&#160;4.5+.
iCab&#160;3+.
ICEbrowser.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.howtocreate.co.uk/tutorials/jsexamples/solitaire.html" >Solitaire</a> прямо у&nbsp;вас в браузере&nbsp;&mdash; написан на&nbsp;JavaScript&#39;е.<br/>
Вот она, мощь JS :) ИМХО, неплохой пример&nbsp;получился.</p>
<p>Поддержка&nbsp;браузерами:</p>
<ul>
<li>Opera&nbsp;7+.</li>
<li>Mozilla/Firefox/Netscape&nbsp;6+.</li>
<li>Internet Explorer 5+ on Windows and&nbsp;Mac.</li>
<li>Konqueror 3+/Safari/OmniWeb&nbsp;4.5+.</li>
<li>iCab&nbsp;3+.</li>
<li>ICEbrowser.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2006/01/15/webdev-solitaire-on-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>WebDev / Новые Веяния,&#160;RubyOnRails</title>
		<link>http://blog.denyamsk.ru/2005/12/28/webdev-novyie-veyaniya-rubyonrails/</link>
		<comments>http://blog.denyamsk.ru/2005/12/28/webdev-novyie-veyaniya-rubyonrails/#comments</comments>
		<pubDate>Wed, 28 Dec 2005 16:31:52 +0000</pubDate>
		<dc:creator>Denya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.denyamsk.ru/2005/12/28/webdev-novyie-veyaniya-rubyonrails/</guid>
		<description><![CDATA[Кто-то, прочитав заголовок, скажет: &#171;Да какие&#160;же они новые!&#187;. Кто-то скажет: &#171;Ну, руби, ну, рельсы. А зачем мне? PHP(Perl?) спасет мир&#187;. А кто-то просто прочитает и&#160;закроет.
По последней схеме раньше действовал и я, хотя многие уважаемые мной блоггеры (urbansheep, Clops, Maniac, julik) писали посты, употребляя загадочные термины типа RoR&#160;или Django, причем эти загадочные штуки они исключительно нахваливали. [...]]]></description>
			<content:encoded><![CDATA[<p><span style="white-space:nowrap" >Кто-то</span>, прочитав заголовок, скажет: &laquo;Да какие&nbsp;же они новые!&raquo;. <span style="white-space:nowrap" >Кто-то</span> скажет: &laquo;Ну, руби, ну, рельсы. А зачем мне? PHP(Perl?) спасет мир&raquo;. А <span style="white-space:nowrap" >кто-то</span> просто прочитает и&nbsp;закроет.<br/>
По последней схеме раньше действовал и я, хотя многие уважаемые мной блоггеры (urbansheep, Clops, <a href="http://softwaremaniacs.org/blog" >Maniac</a>, <a href="http://live.julik.nl/" >julik</a>) писали посты, употребляя загадочные термины типа <acronym title="RubyOnRails"  style="border-bottom: 1px dotted;" >RoR</acronym>&nbsp;или <acronym title="Python framework"  style="border-bottom: 1px dotted;" >Django</acronym>, причем эти загадочные штуки они исключительно нахваливали. Да все <span style="white-space:nowrap" >как-то</span> мимо ушей шло, не цепляло, да лень&nbsp;было.</p>
<p>А лказывается, очень интересная штуки, эти RoRы и&nbsp;Джанги.<br/>
По <span&nbsp;style="white-space:nowrap">порядку.</p>
<p>Когда-то</span>, давным давно, захотелось повебдевить (webdev). Выбор был небольшой,&nbsp;либо старик Perl,&nbsp;либо довольно новый на&nbsp;то время, активно рекламирующийся и захватывающий мир, PHP. Выбор пал на&nbsp;PHP, который был изучен за пару дней для удовлетворения собственного любопытства: &laquo;Динамический контент&nbsp;&mdash; это как?&raquo;. И так делали многие, насколько я себе представляю. И даже зарабатывали на этом деньги. А <span style="white-space:nowrap" >кто-то</span> и&nbsp;до&nbsp;сих пор зарабатывает. Но жизнь не стоит на месте. Это ключевой момент. Жизнь движется, все развивается. <b>Кроме Perl и PHP есть ЕЩЕ ЧТО-ТО!</b> И это давно надо было&nbsp;понять.</p>
<blockquote    style="border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;">
<p>Даже если работать с&nbsp;Rails и&nbsp;Ruby претит принципиально рекомендуется <span style="white-space:nowrap" >наконец-то</span> высунуть голову из PHP-болотца (как жаль что я&nbsp;это сделал так поздно) и оглядеться&nbsp;вокруг.</p>
</blockquote>
<p>Пока еще не поздно&nbsp;:)<br/>
Вы программируете на&nbsp;PHP? PHP&nbsp;&mdash; это уродливый клон синтаксиса C. Хорошо конечно, но можно и&nbsp;<b>по-другому</b>.</p>
Все цитаты на тему ruby выдернуты из поста julik&#39;а. <b>Очень советую</b> почитать его пост на&nbsp;эту тему. Может хоть это откроет вам глаза. Попробовать RoR совсем не сложно, framework ставится легко. С полпинка. Лень ставить? Смотрите в конец поста. Try ruby!
<ul>
<li>Читать: <font size="+1" ><a href="http://live.julik.nl/2005/11/php-is-so-90s" ><b>Рельсовые войны</b></a></font>&nbsp;</li>
</ul>
<p>Кстати да, забыл сказать. Вообще, <a href="http://www.ruby-lang.org/" >Ruby</a>&nbsp;&mdash; это язык такой. Довольно молодой. Основные&nbsp;принципы?</p>
<blockquote    style="border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;border: 1px dotted #303030; border-left: 3px double #303030; padding: 10px 10px 10px 10px; margin: 10px 10px 10px 40px; background: #E9E9E9; color: #303030;">
<ul>
<li>Все&nbsp;&mdash; объект&nbsp;</li>
<li>Класс&nbsp;&mdash; тоже&nbsp;объект</li>
<li>Класс класса&nbsp;&mdash; объект&nbsp;(ха!)</li>
<li>И строка, и число&nbsp;&mdash; объекты, равно как&nbsp;True и&nbsp;False.</li>
<li>Да, null тоже объект. Кстати, его класс&nbsp;&mdash; объект класса&nbsp;Класс.</li>
<li>Объекты отвечают на сообщения, причем сообщения сходной семантики в классах называются&nbsp;одинаково</li>
</ul>
<p>Все. Этого&nbsp;достаточно.</p>
<p>Чтобы выяснить разницу двух массивов в&nbsp;PHP, нужно хорошенько прочитать про&nbsp;все 6478 функций set arithmetic. Чтобы сделать это в&nbsp;Ruby, нужно отнять один массив от другого знаком&nbsp;минус.</p>
<p>...</p>
<p><b>Rails</b>&nbsp;&mdash; это framework (набор библиотек, к которому надо приписать минимум кода для создания готового веб-приложения), сделанный для создания веб-сайтов с базами данных “с нуля”. Это важно&nbsp;&mdash; именно “с нуля”, для “напяливания” сайта на 1С оно не подойдет&nbsp;совершенно.</p>
<p>...</p>
<p>Но все вышесказанное нужно попробовать. По крайней мере по тому что в области архитектуры сейчас Rails&nbsp;&mdash; культовая система, а через&nbsp;год будет baseline-решением (а место Rails займут Seaside и ему&nbsp;подобные).</p>
<p>...</p>
<p>А хостинг&nbsp;&mdash; проблемой не является. Если он нужен, то&nbsp;он будет. А если нет&nbsp;&mdash; то пусть ваш клиент сделает вам одолжение и выберет среднестатистический русский хостинг, а&nbsp;не вас. Он вас не&nbsp;заслуживает.</p>
</blockquote>
<p><b>Try&nbsp;ruby!</b><br/>
Ну что, уговорили мы вас попробовать? Тогда сделайте это в окне браузера прямо <b><a href="http://tryruby.hobix.com/" >здесь и&nbsp;сейчас</a></b>.</p>
<p>PS. На тему Python&#39;а в применении к webdev&#39;у сейчас не осилил. Лучше сделаю отдельный пост. А пока, <a href="http://softwaremaniacs.org/blog/2005/12/08/django/" >можно прочитать про&nbsp;Django у Maniac&#39;а в&nbsp;блоге</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.denyamsk.ru/2005/12/28/webdev-novyie-veyaniya-rubyonrails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<slash:comments>1</slash:comments>
	</item>
	</channel>
</rss>
