<?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/"
	>

<channel>
	<title>ritnet.ru</title>
	<atom:link href="http://ritnet.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://ritnet.ru</link>
	<description>Заметки об IT</description>
	<lastBuildDate>Tue, 09 Dec 2008 08:20:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Синхронизация событий</title>
		<link>http://ritnet.ru/2008/12/synchronizer/</link>
		<comments>http://ritnet.ru/2008/12/synchronizer/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 08:20:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://ritnet.ru/?p=49</guid>
		<description><![CDATA[Как следует поступить, если код должен быть выполнен после наступления нескольких разноплановых событий, таких как, например, успешная инициализация формы, загрузка данных из удаленного источника, либо окончание работы другого потока?
Ответ на этот вопрос можно найти в моей новой статье.
]]></description>
			<content:encoded><![CDATA[<p>Как следует поступить, если код должен быть выполнен после наступления нескольких разноплановых событий, таких как, например, успешная инициализация формы, загрузка данных из удаленного источника, либо окончание работы другого потока?</p>
<p>Ответ на этот вопрос можно найти в <a href="http://ritnet.ru/synchronizer/">моей новой статье</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ritnet.ru/2008/12/synchronizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О строках PHP</title>
		<link>http://ritnet.ru/2008/11/php-strings/</link>
		<comments>http://ritnet.ru/2008/11/php-strings/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 13:03:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://ritnet.ru/?p=35</guid>
		<description><![CDATA[Как известно, PHP позволяет использовать в качестве символа, обозначающего строку как двойную (&#171;), так и одинарную (&#8216;) кавычку. Принципиальной разницей между этими символами является то, как их обрабатывает интерпретатор.
Внутри строк, обозначенных двойными кавычками, он используя регулярные выражения, пытается найти переменные, чтобы заменить их на значения. Если такой переменной не существует вместо неё будет использована пустая [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно, PHP позволяет использовать в качестве символа, обозначающего строку как двойную (&laquo;), так и одинарную (&#8216;) кавычку. Принципиальной разницей между этими символами является то, как их обрабатывает интерпретатор.</p>
<p>Внутри строк, обозначенных двойными кавычками, он используя регулярные выражения, пытается найти переменные, чтобы заменить их на значения. Если такой переменной не существует вместо неё будет использована пустая строка. Строки, обозначенные одинарной кавычкой анализу не подвергаются. В качестве примера:</p>
<pre>$price = 15;
$result1 = $result2 = <span class="String">''</span>;
<span class="Keyword">for</span>($count = 0; $count &lt; 10; $count++)
{
  $amount = $count * $price;
  $result1 .= <span class="String">"Count = $count and amount = $amount&lt;br/&gt;"</span>;
  $result2 .= <span class="String">'Count = $count and amount = $amount&lt;br/&gt;'</span>;
}

<span class="Keyword">echo</span> $result1;
<span class="Keyword">echo</span> <span class="String">'&lt;br/&gt;&lt;br/&gt;'</span>;
<span class="Keyword">echo</span> $result2;</pre>
<p>Соответственно в первом случае на вывод пойдет строка вида: <em>Count = 1 and amount = 15</em>, а во втором: <em>Count = $count and amount = $amount</em>.</p>
<p>Для эквивалентного вывода в случае строк с одинарными кавычками необходимо воспользоваться конкатенацией:</p>
<pre>$result2 .= <span class="String">'Count = '</span>.$count.<span class="String">' and amount = '</span>.$amount.<span class="String">'&lt;br/&gt;'</span>;</pre>
<p>Альтернативой является использование <a href="http://ru2.php.net/manual/ru/function.sprintf.php" target="_blank">встроенной функцией sprintf</a>:</p>
<pre>$result4 .= sprintf(<span class="String">'Count = %d and amount = %d&lt;br/&gt;'</span>, $count, $amount);</pre>
<p>К сожалению, весьма часто встречаются ситуации, когда все строки в коде заключены в двойные кавычки, вне зависимости от наличия или отсутствия переменных в них. А значит ресурсы веб-сервера на их анализ тратятся впустую.</p>
<p>Встаёт вопрос, какой из трёх способов вывода строк работает быстрее всего? Опыт показывает, что для наибольшей производительностью обладает конкатенация строк помеченных одиночными кавычками с переменными. Использования sprintf представляет собой баланс между скоростью работы и качеством кода. Как правило я использую именно её. Заключать строки в двойные кавычки ради вывода переменных я бы не рекомендовал.</p>
]]></content:encoded>
			<wfw:commentRss>http://ritnet.ru/2008/11/php-strings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Первая статья, посвященная сериализации объектов</title>
		<link>http://ritnet.ru/2008/11/first-serialization-artikle/</link>
		<comments>http://ritnet.ru/2008/11/first-serialization-artikle/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 23:51:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://ritnet.ru/?p=33</guid>
		<description><![CDATA[Опубликовал первую статью из цикла, посвященного сериализации объектов. Исходный код будет вывешен с последней статьёй.
]]></description>
			<content:encoded><![CDATA[<p>Опубликовал <a href="http://ritnet.ru/dot-net-serialization-1/">первую статью</a> из цикла, посвященного сериализации объектов. Исходный код будет вывешен с последней статьёй.</p>
]]></content:encoded>
			<wfw:commentRss>http://ritnet.ru/2008/11/first-serialization-artikle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О расположении файлов на диске</title>
		<link>http://ritnet.ru/2008/10/locationoffiles/</link>
		<comments>http://ritnet.ru/2008/10/locationoffiles/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 20:57:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://ritnet.ru/?p=9</guid>
		<description><![CDATA[Все файлы моих проектов находятся на специально выделенном для этих целей диске. Такой способ хранения обладает рядом преимуществ:


Все данные собраны 	в одном месте, что упрощает навигацию.


Это позволяет 	безболезненно использовать абсолютные 	пути к файлам сторонних библиотек 	(таких как SharpZipLib).


У Visual Studio есть 	противная бага. При разработке WPF окон, 	дизайнер не работает, если длинна пути 	до .cs [...]]]></description>
			<content:encoded><![CDATA[<p>Все файлы моих проектов находятся на специально выделенном для этих целей диске. Такой способ хранения обладает рядом преимуществ:</p>
<ol>
<li>
<p style="margin-bottom: 0cm;">Все данные собраны 	в одном месте, что упрощает навигацию.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Это позволяет 	безболезненно использовать абсолютные 	пути к файлам сторонних библиотек 	(таких как SharpZipLib).</p>
</li>
<li>
<p style="margin-bottom: 0cm;">У Visual Studio есть 	противная бага. При разработке WPF окон, 	дизайнер не работает, если длинна пути 	до .cs файла окна больше 255 символов. При 	использовании выделенного диска такой 	проблемы как правило не возникает.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Главным же преимуществом 	использования выделенного диска 	является возможность безболезненного 	переноса папок с программным кодом на 	другой компьютер. К примеру, в основном 	я пишу на стационарном 	компьютере, где развернута большая 	часть дополнительного программного 	обеспечения и т.д. Но иногда я пользуюсь 	ноутбуком. Соответственно, все файлы 	с программой записываются в криптоконтейнер 	TrueCrypt, файл контейнера записывается на 	флешку, а на целевом компьютере 	монтируется как диск X. В итоге, независимо 	от местонахождения, программа компилится 	и работает без проблем.</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ritnet.ru/2008/10/locationoffiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение строки соединения с БД</title>
		<link>http://ritnet.ru/2008/10/getconnectionstring/</link>
		<comments>http://ritnet.ru/2008/10/getconnectionstring/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 09:14:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://ritnet.ru/?p=7</guid>
		<description><![CDATA[Для быстрого и простого получения строки соединения с БД можно воспользоваться следующим приёмом.
Создаём простой текстовый файл. Расширение изменяем с .txt на .udl. При открытии изменённого файла появится диалог подключения к БД, в котором мы можем выбрать поставщика данных, указать сервер, имя пользователя и пароль (либо использование авторизации Windows) и кучу дополнительной информации. Нажимаем на кнопочку [...]]]></description>
			<content:encoded><![CDATA[<p>Для быстрого и простого получения строки соединения с БД можно воспользоваться следующим приёмом.</p>
<p>Создаём простой текстовый файл. Расширение изменяем с .txt на .udl. При открытии изменённого файла появится диалог подключения к БД, в котором мы можем выбрать поставщика данных, указать сервер, имя пользователя и пароль (либо использование авторизации Windows) и кучу дополнительной информации. Нажимаем на кнопочку &laquo;OK&raquo;, переименовываем файл обратно в .txt и открываем блокнотом. Теперь внутри него будет строка подключения.</p>
]]></content:encoded>
			<wfw:commentRss>http://ritnet.ru/2008/10/getconnectionstring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
