<?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>Записки IT-шника</title>
	<atom:link href="http://it-blog.net.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://it-blog.net.ru</link>
	<description>Информация - сила. Давайте делиться ею и становиться сильнее!</description>
	<lastBuildDate>Sat, 25 Feb 2012 08:25:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Не работает trim в PHP? Есть решение!</title>
		<link>http://it-blog.net.ru/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-trim-%d0%b2-php-%d0%b5%d1%81%d1%82%d1%8c-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/</link>
		<comments>http://it-blog.net.ru/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-trim-%d0%b2-php-%d0%b5%d1%81%d1%82%d1%8c-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:24:11 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=232</guid>
		<description><![CDATA[Итак, перейдем сразу к сути. Не все, что отображается как пробел им является. Так, например, сегодня я обрабатывал строку, использовал стандартную функцию обрезания пробельных символов &#8211; trim, но к сожалению ничего не было обрезано. Как следует поступать в этой ситуации: Шаг 1: определяем какие именно символы содержатся в строке $str: for ($i=0; $len = strlen($str); [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, перейдем сразу к сути.</p>
<p>Не все, что отображается как пробел им является. Так, например, сегодня я обрабатывал строку, использовал стандартную функцию обрезания пробельных символов &#8211; trim, но к сожалению ничего не было обрезано.</p>
<p>Как следует поступать в этой ситуации:</p>
<p><strong>Шаг 1</strong>: определяем какие именно символы содержатся в строке $str:</p>
<address>for ($i=0; $len = strlen($str); $i &lt; $len; $i++)  {</address>
<address>    echo ord($str[$i]) . &#8216;&lt;br /&gt;&#8217;;</address>
<address>}</address>
<p>В моем случае такими &#8220;магическими&#8221; символами оказались:</p>
<p>194</p>
<p>160</p>
<p>&#8230; Далее шли обычные символы стоки &#8230;</p>
<p><strong>Шаг 2</strong>: Обрезаем символы, которые выглядят как пробельные</p>
<address>$str = trim($str, chr(194).chr(160).chr(32).&#8221;\t\r\n&#8221;);</address>
<p>&nbsp;</p>
<p><strong>Вместо вывода</strong>: Таким вот образом мы указали функции trim какие символы считать пробельными, к нашим магическим добавился символ #32 &#8211; собственно настоящий пробел, табуляция, и перевод каретки.</p>
<p>Конечно, приведенный способ является ни чем иным как костылем, и лучше бы позаботиться о данных на стадии ввода, но если пишется краулер или run-once программа, то способ вполне годный.</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-trim-%d0%b2-php-%d0%b5%d1%81%d1%82%d1%8c-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zero playing game в блогосфере</title>
		<link>http://it-blog.net.ru/zero-playing-game-%d0%b2-%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d1%81%d1%84%d0%b5%d1%80%d0%b5/</link>
		<comments>http://it-blog.net.ru/zero-playing-game-%d0%b2-%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d1%81%d1%84%d0%b5%d1%80%d0%b5/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 14:28:03 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=226</guid>
		<description><![CDATA[Знаете ли вы что такое ZPG? Для тех кто не знает Zero playing game &#8211; такая игра, в которой человек никак не влияет на ход игры (как в MyBrute) или влияет минимальным образом (как в Godville).  Что общего с блогосферой спросите вы? Объясняю, вот создали вы себе блог, думали что вам будет о чем туда [...]]]></description>
			<content:encoded><![CDATA[<p>Знаете ли вы что такое ZPG? Для тех кто не знает Zero playing game &#8211; такая игра, в которой человек никак не влияет на ход игры (как в MyBrute) или влияет минимальным образом (как в Godville).  Что общего с блогосферой спросите вы? Объясняю, вот создали вы себе блог, думали что вам будет о чем туда писать чуть ли не каждый час, а в итоге &#8211; долгое время ничего туда не пишите, со стороны можно подумать, забили на него вовсе. Но на самом деле не забили, просто писательский кризис наступил, и в результате &#8211; каждый день берешь и смотришь в гуглоаналитике сколько человек посетило твой блог, немного расстраиваешься когда посещаемость падает и радуешься когда растет. Чем не ZPG?)))</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/zero-playing-game-%d0%b2-%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d1%81%d1%84%d0%b5%d1%80%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сервис создания диаграмм онлайн</title>
		<link>http://it-blog.net.ru/%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b4%d0%b8%d0%b0%d0%b3%d1%80%d0%b0%d0%bc%d0%bc-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd/</link>
		<comments>http://it-blog.net.ru/%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b4%d0%b8%d0%b0%d0%b3%d1%80%d0%b0%d0%bc%d0%bc-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 17:37:08 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=211</guid>
		<description><![CDATA[Сегодня нужно было набросать простенькую диаграммку, решил ничего не ставить из-за такой мелкой задачи себе на компьютер лишний софт. Подумал, что быстрее найти нужный сервис онлайн. Найденным сервисом остался доволен на 150%, собственно вот он: http://www.diagram.ly/ интерфейс очень приятен, написано сее чуда без применения флеша, что не может не радовать. Всем реккомендую!]]></description>
			<content:encoded><![CDATA[<p>Сегодня нужно было набросать простенькую диаграммку, решил ничего не ставить из-за такой мелкой задачи себе на компьютер лишний софт. Подумал, что быстрее найти нужный сервис онлайн.</p>
<p>Найденным сервисом остался доволен на 150%, собственно вот он: <a title="http://www.diagram.ly/" href="http://www.diagram.ly/" target="_blank">http://www.diagram.ly/</a> интерфейс очень приятен, написано сее чуда без применения флеша, что не может не радовать.</p>
<p>Всем реккомендую!</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b4%d0%b8%d0%b0%d0%b3%d1%80%d0%b0%d0%bc%d0%bc-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Контекстная реклама от Google в GMail</title>
		<link>http://it-blog.net.ru/%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%bd%d0%b0%d1%8f-%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%bc%d0%b0-%d0%be%d1%82-google-%d0%b2-gmail/</link>
		<comments>http://it-blog.net.ru/%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%bd%d0%b0%d1%8f-%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%bc%d0%b0-%d0%be%d1%82-google-%d0%b2-gmail/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 18:39:35 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=199</guid>
		<description><![CDATA[Ни для кого не секрет, что Google сканирует нашу переписку и показывает тематическую рекламу. С ее помощью я, например, нашел своего хостинг-провайдера. Почта моего домена подключена к почтовым серверам от Google, что делает ее тем же самым GMail&#8217;ом. И вот пришел день, когда одному моему фейковому аккаунту на Facebook на  начали идти оповещения. Все ничего, [...]]]></description>
			<content:encoded><![CDATA[<p>Ни для кого не секрет, что Google сканирует нашу переписку и показывает тематическую рекламу. С ее помощью я, например, нашел своего хостинг-провайдера. Почта моего домена подключена к почтовым серверам от Google, что делает ее тем же самым GMail&#8217;ом.</p>
<p>И вот пришел день, когда одному моему фейковому аккаунту на Facebook на  начали идти оповещения. Все ничего, но на этом аккаунте я тестировал японскую локализацию, а потому письма тоже шли на японском.</p>
<p>Теперь контекстная реклама выглядит так:</p>
<p><a href="http://it-blog.net.ru/wp-content/uploads/2011/03/lx8sVRQ7CEeF8D45MRFA1.jpg"><img class="aligncenter size-full wp-image-204" title="lx8sVRQ7CEeF8D45MRFA" src="http://it-blog.net.ru/wp-content/uploads/2011/03/lx8sVRQ7CEeF8D45MRFA1.jpg" alt="" width="694" height="102" /></a></p>
<p>И это не смотря на обилие писем на русском и английском языках!))))</p>
<p>Браво!)))</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%bd%d0%b0%d1%8f-%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%bc%d0%b0-%d0%be%d1%82-google-%d0%b2-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ICQ + ВКонтакте клиент для iPhone</title>
		<link>http://it-blog.net.ru/icq-%d0%b2%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d0%b5-%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82-%d0%b4%d0%bb%d1%8f-iphone/</link>
		<comments>http://it-blog.net.ru/icq-%d0%b2%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d0%b5-%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82-%d0%b4%d0%bb%d1%8f-iphone/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 16:13:32 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=194</guid>
		<description><![CDATA[Купив iPhone, я начал искать хороший клиент для ICQ. К моему сожалению, даже платные клиенты обладали недостатками. На одних оффлайн сообщения не доходили в правильной кодировке, на других проблемы с кодировкой проявлялись при обмене сообщениями с некоторыми пользователями. Из всех я остановился на Palringo. Новости о выходе бесплатного IM Mobile qip я обрадовался. Создатели его [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 10px;" src="http://qip.ru/i/dload/mobile/iphone_01.jpg" alt="iphone_qip_mobile" width="240" height="360" />Купив iPhone, я начал искать хороший клиент для ICQ. К моему сожалению, даже платные клиенты обладали недостатками. На одних оффлайн сообщения не доходили в правильной кодировке, на других проблемы с кодировкой проявлялись при обмене сообщениями с некоторыми пользователями. Из всех я остановился на Palringo.</p>
<p>Новости о выходе бесплатного IM Mobile qip я обрадовался. Создатели его &#8211; наши ребята, с кодировкой проблем быть не должно) Скачал, поставил, из профиля квип подтянулась информация и о других учетках (в том числе и учетная запись ВКонтакте). Сейчас поддержка работы с Jabber-сервером вконтакте анонсирована на будущие версии, но я расскажу как заставить его работать прямо сейчас.</p>
<p>Заходим в настройки учетной записи Вконтакте, устанавливаем переключатель &#8220;Указать сервер&#8221; на &#8220;1&#8243;, и указываем в графе &#8220;Хост&#8221; значение &#8220;vkmessenger.com&#8221;, порт оставляем стандартным &#8211; 5222. Имя пользователя вводим в формате &#8220;ВАШ_НИК@vk.com&#8221;, пароль от аккаунта &#8220;ВКонтакте&#8221;. Теперь можно общаться с друзьями из контакта на iPhone очень быстро.</p>
<p>Ну и поюс ко всему документированные &#8220;<a href="http://qip.ru/mobile#iphone" target="_blank">плюшки</a>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/icq-%d0%b2%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d0%b5-%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82-%d0%b4%d0%bb%d1%8f-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Образцовая документация</title>
		<link>http://it-blog.net.ru/%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d1%86%d0%be%d0%b2%d0%b0%d1%8f-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f/</link>
		<comments>http://it-blog.net.ru/%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d1%86%d0%be%d0%b2%d0%b0%d1%8f-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 14:00:18 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=191</guid>
		<description><![CDATA[3 минуты назад увидел я в используемой мною библиотеке (под .NET) перегруженную функцию: Connect(), Connect(string Host, int Port).  Логика работы функции с параметры очевидна. Откуда берется информация о хосте и порте в перегрузке без параметров, возможно, из предыдущего соединения? XML-комментариев в этой библиотеке нет (а потому IDE не может подсказать ничего кроме сигнатуры). Открываю документацию [...]]]></description>
			<content:encoded><![CDATA[<p>3 минуты назад увидел я в используемой мною библиотеке (под .NET) перегруженную функцию: Connect(), Connect(string Host, int Port).  Логика работы функции с параметры очевидна. Откуда берется информация о хосте и порте в перегрузке без параметров, возможно, из предыдущего соединения? XML-комментариев в этой библиотеке нет (а потому IDE не может подсказать ничего кроме сигнатуры). Открываю документацию к библиотеке. В ней все ограничено сигнатурой функции и фразой, что функция Connect соединяется с сервером. Спасибо, КЭП!</p>
<p>Пробовать эмперически? Не наш подход! Открываем .NET Reflector и декомпилируем DLL сборку, видим такой код:</p>
<table style="margin-bottom: 0px;" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="padding: 4px 5px;" colspan="2" valign="top">
<pre style="padding-left: 30px;"><span style="color: #1000a0;">public</span> void <strong><span class="bold">Connect</span></strong>()
{
    <span style="color: #1000a0;">this</span>.Connect(<span style="color: #1000a0;">this</span>.hostname, <span style="color: #1000a0;">this</span>.port);
}</pre>
</td>
</tr>
</tbody>
</table>
<p>Ага, ищем где устанавливаются private члены hostname и port. В теле того же метода с перегрузкой не устанавливаем, и вообще нигде не устанавливаем кроме как только в set-обработчиках этих свойств:</p>
<table style="margin-bottom: 0px;" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="padding: 4px 5px;" colspan="2" valign="top">
<pre style="padding-left: 30px;"><span style="color: #1000a0;">public</span> string <strong><span class="bold">Hostname</span></strong>
{
    <span style="color: #1000a0;">set</span>
    {
        <span style="color: #1000a0;">this</span>.hostname = <span style="color: #1000a0;">value</span>;
    }
}</pre>
</td>
</tr>
</tbody>
</table>
<p>После этого все становится понятным <img src='http://it-blog.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Слався .NET Reflector, слався рефлексия, нафиг документацию <img src='http://it-blog.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 54px; width: 1px; height: 1px; overflow: hidden;">
<table style="margin-bottom: 0px;" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="padding: 4px 5px;" colspan="2" valign="top">
<pre><span style="color: #1000a0;">public</span> <a title="System.Void" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:1.0.3300.0:b77a5c561934e089/System.Void">void</a> <strong><a class="bold" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Telnet:1.0.0.0/De.Mud.Telnet.TelnetWrapper/Connect%28%29">Connect</a></strong>()
{
    <span style="color: #1000a0;">this</span>.<a title="void De.Mud.Telnet.TelnetWrapper.Connect(string host, int port);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Telnet:1.0.0.0/De.Mud.Telnet.TelnetWrapper/Connect%28String,Int32%29">Connect</a>(<span style="color: #1000a0;">this</span>.<a title="string De.Mud.Telnet.TelnetWrapper.hostname;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Telnet:1.0.0.0/De.Mud.Telnet.TelnetWrapper/hostname:String">hostname</a>, <span style="color: #1000a0;">this</span>.<a title="int De.Mud.Telnet.TelnetWrapper.port;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Telnet:1.0.0.0/De.Mud.Telnet.TelnetWrapper/port:Int32">port</a>);
}</pre>
</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d1%86%d0%be%d0%b2%d0%b0%d1%8f-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Эти тупые пользовательские интерфейсы&#8230;</title>
		<link>http://it-blog.net.ru/eti-tupye-polzovatelskie-interfejsy/</link>
		<comments>http://it-blog.net.ru/eti-tupye-polzovatelskie-interfejsy/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 07:08:24 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=167</guid>
		<description><![CDATA[Написать сегодняшний пост меня дернул курьезный случай, произошедший со мной пол часа назад. Нужно мне было пополнить счет мобильного телефона (Beeline Украина) с кошелька WMZ. Я &#8211; клиент оператора сотовой связи Life : ) . Зайдя в телепэй я по привычке ввел телефон и количество денег, которые я хочу положить на счет в гривнях ($1 [...]]]></description>
			<content:encoded><![CDATA[<p>Написать сегодняшний пост меня дернул курьезный случай, произошедший со мной пол часа назад. Нужно мне было пополнить счет мобильного телефона (Beeline Украина) с кошелька WMZ. Я &#8211; клиент оператора сотовой связи Life : ) . Зайдя в телепэй я по привычке ввел телефон и количество денег, которые я хочу положить на счет в гривнях ($1 = 8грн) &#8211; 40. Выбрал с какого кошелька списать (долларовый) и нажал на кнопку оплаты. Далее защитный код, кнопка &#8220;Оплатить&#8221;, потом &#8220;Платежь подтверждаю&#8221; и через минуту деньги на счету.</p>
<p>Все бы хорошо, но&#8230; а попробуйте ка сами сравнить интерфейс пополнения счета на лайф и на билайн:</p>
<p><a href="http://it-blog.net.ru/wp-content/uploads/2010/08/diff.gif"><img class="aligncenter size-full wp-image-168" title="diff" src="http://it-blog.net.ru/wp-content/uploads/2010/08/diff.gif" alt="Интерфейсы пополнения счета" width="596" height="900" /></a>А теперь самый главный вопрос: Нахрена такое делать? Это же одна и та же компания, интерфейс должен быть унифицирован. Хотя и я, конечно, ступил. Зато теперь у человека 320 грн на счету))</p>
<p>Если кто не понял фишки &#8211; объясняю. При пополнении счета лайф всегда указывается сумма в гривнях, при пополнении счета билайн &#8211; в эквиваленте того кошелька, с которого идет оплата.</p>
<p>Еще один примерчик недоработки интерфейса, который вообще не должен иметь места в более-менее уважающей себя системе:</p>
<p><a href="http://it-blog.net.ru/wp-content/uploads/2010/08/vk-send.gif"><img class="aligncenter size-full wp-image-169" title="vk-send" src="http://it-blog.net.ru/wp-content/uploads/2010/08/vk-send.gif" alt="" width="452" height="123" /></a>Рассказывать что это такое думаю не стоит, а потому перейдем сразу к делу. Активной областью является то, что в пунктирном прямоугольнике. А значит при нажатии на кнопку вне этой области (которую, кстати, до нажатия не видно) ничего не произойдет. Конечно, это не критично, но такого быть не должно. Представьте себе на клавиатуре кнопку, например, пробел, которая будет работать только если нажать ее в определенном месте))) Приходилось работать на такой клаве &#8211; раздражает через пару нажатий. Хорошо, что с появлением поддержки XMPP протокола контакт для меня стал Jabber-сервером и файлообменником.</p>
<p>Вообще интерфейсам стоит уделять намного больше внимания, чем это делается обычно. Интерфейс &#8211; лицо вашей информационной системы, на которое забивать никак нельзя.</p>
<p>Много интересного на тему интерфейсов (какими они должны быть, и какими не должны) можно почитать у Лебедева в <a href="http://store.artlebedev.ru/books/design/kovodstvo2/" target="_blank">ководствах</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/eti-tupye-polzovatelskie-interfejsy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Вконтакте открывают платежную систему</title>
		<link>http://it-blog.net.ru/vkontakte-otkryvayut-platezhnuyu-sistemu/</link>
		<comments>http://it-blog.net.ru/vkontakte-otkryvayut-platezhnuyu-sistemu/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 22:06:53 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[ВКонтакте]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=143</guid>
		<description><![CDATA[Сегодня на блоге соц сети ВКонтакте была опубликована новость о том, что в считанные дни будет открыта новая платежная система. Прочитать ее оригинал вы можете перейдя по ссылке выше. Попробую прокомментировать анонс этой системы цитируя оригинал. &#60;IMHO&#62; Те, кому приходилось оплачивать покупки в интернете, знают, как это бывает неудобно. Мы тоже это заметили и придумали [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://vkontakte.ru/images/pics/paybuttonsample.png" alt="" width="167" height="43" />Сегодня на <a href="http://vkontakte.ru/blog.php" target="_blank">блоге соц сети ВКонтакте</a> была опубликована новость о том, что в считанные дни будет открыта новая платежная система. Прочитать ее оригинал вы можете перейдя по ссылке выше.</p>
<p>Попробую прокомментировать анонс этой системы цитируя оригинал.</p>
<p><strong>&lt;IMHO&gt;</strong></p>
<blockquote><p>Те, кому приходилось оплачивать покупки в интернете, знают, как это  бывает неудобно. Мы тоже это заметили и придумали специальный сервис,  который позволит Вам быстро, безопасно и максимально выгодно заказывать  товары в интернете.</p></blockquote>
<p>Странно, но я ни разу не чувствовал неудобств при использовании системы WebMoney. Кроме того, более-менее солидные организации генерируют платежную квитанцию, по которой можно совершить платеж в любом отделении любого банка.</p>
<blockquote><p>Так как нам хотелось сделать эту систему максимально выгодной для Вас,  мы в отличие от других подобных систем (<strong>WebMoney</strong>, <strong>Яндекс-Деньги</strong>)  не будем брать комиссию и зарабатывать на наших пользователях.</p></blockquote>
<p>На мой взгляд это ключевой пункт. Сейчас объясню почему. Ранее я был ярым поклонником свободного бесплатного программного обеспечения. Сейчас моя точка зрения изменилась. Собственно изменилась она после того, как я решил попробовать Mono как альтернативу Visual Studio. После этого эксперимента я понял, что деньги гребут мелкомягкие не просто так, и что их продукт их стоит. Та же ситуация и с другими IDEшками, офисными пакетами (OpenOffice vs. MS Office), графическими редакторами и всем всем всем. Продукт может быть хорошим только тогда, когда разработчики заинтересованы в хорошем результате. А главная мотивация все таки &#8211; деньги. Так и выходит, что платное ПО выше качеством бесплатного. Вернемся к нашим баранам. Итак&#8230;</p>
<p>Отсутствие комиссии говорит нам о целях создания и принципах заработка на этом проекте. Создав платежную систему Вконтакте получит некоторую сумму денег в свое распоряжение. Конечно эти средства не будут принадлежать контакту, но фактически пока их валюта будет чего-то стоить они смогут пользоваться чужими деньгами. Как сделать из денег еще больше денег? Вложить их в оборот! Либо непосредственно в свой, либо в чужой через банковский депозит.Отсутствие комиссии возможно и позитивное явление с экономической стороны, но боюсь, что могут вылезти негативные стороны, как у свободного ПО &#8211; невысокое качество продукта.</p>
<p>Хоть я и не в восторге от этой затеи, скорее всего я ее все-таки где-то попробую больше из любопытства.</p>
<p>Ну а вообще приятно, что в рунете появляются новые сервисы, и жизнь не стоит на месте.</p>
<p><strong>&lt;/IMHO&gt;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/vkontakte-otkryvayut-platezhnuyu-sistemu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Постинкрементный оператор</title>
		<link>http://it-blog.net.ru/postinkrementnyj-operator/</link>
		<comments>http://it-blog.net.ru/postinkrementnyj-operator/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 06:27:52 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=139</guid>
		<description><![CDATA[Вчера в универе зашел спор на вот такую тему: чему будет равно i после выполнения этого участка кода: int i=0; i = i++; Участники дискуссии разделились на 2 части (одни говорили, что значение i будет равно 0, другие &#8211; 1). Я считал, что i будет равно нулю. Нам рассказывали как работает этот оператор еще на [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера в универе зашел спор на вот такую тему: чему будет равно <em>i</em> после выполнения этого участка кода:</p>
<p style="padding-left: 30px;">int i=0;</p>
<p style="padding-left: 30px;">i = i++;</p>
<p>Участники дискуссии разделились на 2 части (одни говорили, что значение <em>i</em> будет равно 0, другие &#8211; 1). Я считал, что i будет равно нулю. Нам рассказывали как работает этот оператор еще на 1м курсе. Например, если рассмотреть постинкрементный оператор как функцию с одним параметрами, то код этой функции будет таков (псевдоязык):</p>
<p style="padding-left: 30px;">operator pos++(int&amp; value){<br />
int res =value;<br />
value = value + 1;<br />
return res;<br />
}</p>
<p>Собственно, возвращаем мы временное значение, а не значение переменной, а в преинкременте &#8211; мы возвращаем саму переменную. Именно поэтому в С++ только 3я строка не скомпилируется:</p>
<p style="padding-left: 30px;">int i = 0</p>
<p style="padding-left: 30px;">++i = 5;</p>
<p style="padding-left: 30px;">i++ = 5;</p>
<p>Дискуссия продолжалась бы долго если бы не проверили это на ноуте:</p>
<table style="height: 181px;" width="324">
<tbody>
<tr>
<td>Язык программирования:</td>
<td>Значение i</td>
</tr>
<tr>
<td>Java</td>
<td>0</td>
</tr>
<tr>
<td>C#</td>
<td>0</td>
</tr>
<tr style="text-align: left;">
<td>C++</td>
<td>1 &#8211; опа&#8230;</td>
</tr>
<tr>
<td>PHP</td>
<td>0</td>
</tr>
<tr>
<td>JavaScript</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>С++ внезапно выдал 1 (VS 2008). Всем кто был за ноль стало интересно в какой момент времени происходит присваивание. Разбираться в декомпилированном коде никто не рвался, поэтому пришлось проверять ан примерах:</p>
<p>int i = 0, p = 0;<br />
p = (i++) + (i++);<br />
std::cout &lt;&lt; &#8220;i = &#8221; &lt;&lt; i &lt;&lt; &#8220;\n&#8221; &lt;&lt; &#8220;p = &#8221; &lt;&lt; p &lt;&lt; &#8220;\n&#8221;;</p>
<p>Вышеприведенный код дал результаты: p=0, i=2.</p>
<p>Получается, инкремент происходит после выполнения 2й строки. Для того, чтобы проверить &#8220;не тупо ли&#8221; компилятор считает инкременты и вставляет их следующей строкой был написан такой код:</p>
<p>int i = 0, p = 0;<br />
p = (i++ == 0 || i++ == 1);<br />
std::cout &lt;&lt; &#8220;i = &#8221; &lt;&lt; i &lt;&lt; &#8220;\n&#8221; &lt;&lt; &#8220;p = &#8221; &lt;&lt; p &lt;&lt; &#8220;\n&#8221;;</p>
<p>Здесь по краткой схеме вычисляется выражение до || и дальше не вычисляется. Прогнозируемо p = 1, и i = 1. Т.е. все не тупо.</p>
<p>Честно говоря, ради таких экспериментов не хочется ставить другие компиляторы С++. Если у вас есть Borland / RAD / gcc или что угодно еще &#8211; попробуйте на них выполнить данный код. Результат можно в коменты, добавлю в пост.</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/postinkrementnyj-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сравнение скорости работы JavaScript в разных браузерах</title>
		<link>http://it-blog.net.ru/sravnenie-skorosti-raboty-javascript-v-raznyx-brauzerax/</link>
		<comments>http://it-blog.net.ru/sravnenie-skorosti-raboty-javascript-v-raznyx-brauzerax/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 20:21:43 +0000</pubDate>
		<dc:creator>Matskoff-Lion</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://it-blog.net.ru/?p=132</guid>
		<description><![CDATA[Сегодня наткнулся на вот такой забавный сайт, на котором собраны javascript программы, демонстрирующие превосходства движка WebKit. Конечно, весь сайт пронизан любовью к Chrome, но эта любовь имеет свои мотивы. Попробуйте запустить эти примеры в разных браузерах для сравнения. Я запускал сначала в Firefox, а потом в Chrome. Если в огнелисе все работает, но &#8220;немножко тормозит&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня наткнулся на <a href="http://www.chromeexperiments.com/" target="_blank">вот такой забавный сайт</a>, на котором собраны javascript программы, демонстрирующие превосходства движка WebKit. Конечно, весь сайт пронизан любовью к Chrome, но эта любовь имеет свои мотивы. Попробуйте запустить эти примеры в разных браузерах для сравнения. Я запускал сначала в Firefox, а потом в Chrome. Если в огнелисе все работает, но &#8220;немножко тормозит&#8221;, то в хроме &#8211; все летает.</p>
<p>Хочется отметить, что примеры собраны не такие тривиальные как ACID тесты, а выполнены на HTML5, что позволяет нам увидеть возможности новых компонентов.</p>
<p><a href="http://lab.publicreative.com/impressionist/" target="_blank">Тест</a> который как для JavaScript дает очень хорошую скорость обработки изображения (у меня результаты в Firefox и Chrome разнятся не существенно).</p>
<p><a href="http://www.giuseppesicari.it/progetti/javascript-3d-model-viewer/index.php" target="_blank">А вот тест</a>, который показывает огромную разницу в скорости (в пользу Chrome). Интереснее всего смотреть на вертолет и корабль</p>
<p><a href="../wp-content/uploads/2010/03/pic.png"><img title="pic" src="../wp-content/uploads/2010/03/pic.png" alt="" width="473" height="257" /></a></p>
<p>Надеюсь просмотр тестов принесет огромное эстетическое удовольствие людям, жизнь которых повязана с разработкой web и вообще всем, кто интересуется развитием web технологий.</p>
<p>В тенденциях эволюции веб-технологий происходит изменения в плане ускорения работы клиентской части: ActionScript 3 работает в разы быстрее своих предыдущих версий, новые движки обрабатывают javascript быстрее.  Возможно, теперь некоторые задачи будут перекладывать с Flash&#8217;a на HTML (графика, видео &#8211; YouTube поддерживает теперь).</p>
]]></content:encoded>
			<wfw:commentRss>http://it-blog.net.ru/sravnenie-skorosti-raboty-javascript-v-raznyx-brauzerax/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.270 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-20 17:42:43 -->

