<?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>Жалко выбрасывать веблог</title>
	<atom:link href="http://www.falsecode.ru/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.falsecode.ru/blog</link>
	<description>Хочу, чтобы круги пошли</description>
	<lastBuildDate>Tue, 10 Apr 2012 02:45:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Загрузка файлов в html5</title>
		<link>http://www.falsecode.ru/blog/?p=383</link>
		<comments>http://www.falsecode.ru/blog/?p=383#comments</comments>
		<pubDate>Tue, 10 Apr 2012 02:45:11 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=383</guid>
		<description><![CDATA[Очень приличный урок с демкой на тему &#171;как сделать загрузку файлов в html5 с панелью прогресса и минимум работы на jQuery&#187;: http://tutorialzine.com/2011/09/html5-file-upload-jquery-php/ Используется объект FileReader, так что старые браузеры в пролете. Но кого это волнует?]]></description>
			<content:encoded><![CDATA[<p>Очень приличный урок с демкой на тему &#171;как сделать загрузку файлов в html5 с панелью прогресса и минимум работы на jQuery&#187;: <a href="http://tutorialzine.com/2011/09/html5-file-upload-jquery-php/">http://tutorialzine.com/2011/09/html5-file-upload-jquery-php/</a></p>
<p>Используется объект FileReader, так что старые браузеры в пролете. Но кого это волнует? <img src='http://www.falsecode.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=383</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Контексное меню в HTML5</title>
		<link>http://www.falsecode.ru/blog/?p=322</link>
		<comments>http://www.falsecode.ru/blog/?p=322#comments</comments>
		<pubDate>Sat, 10 Mar 2012 06:55:15 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Крутости]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=322</guid>
		<description><![CDATA[В спецификации HTML5 есть интересная штука &#8212; контекстное меню. Эта спецификация позволяет разработчикам создавать контекстное меню для любого блока, не прибегая к помощи различных костылей плагинов. Самое интересное, что мы не подменяем меню браузера, а дополняем его. Вот, пример. Начнем с того, что создадим блок и укажем ему ID меню. А вот и само меню. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.falsecode.ru/blog/?attachment_id=326" rel="attachment wp-att-326"><img class="alignright size-full wp-image-326" title="html5context" src="http://www.falsecode.ru/blog/wp-content/uploads/2012/03/html5context.png" alt="" width="350" height="141" /></a>В спецификации HTML5 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#context-menus">есть</a> интересная штука &#8212; контекстное меню. Эта спецификация позволяет разработчикам создавать контекстное меню для любого блока, не прибегая к помощи различных <del>костылей</del> плагинов. Самое интересное, что мы не подменяем меню браузера, а дополняем его.</p>
<p>Вот, пример.<br />
<span id="more-322"></span><br />
Начнем с того, что создадим блок и укажем ему ID меню.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;section contextmenu='mymenu'&gt;
    Some text.
&lt;/section&gt;
</pre>
<p>А вот и само меню.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;menu type=&quot;context&quot; id=&quot;mymenu&quot;&gt;
    &lt;menuitem label=&quot;Обновить&quot; onclick=&quot;window.location.reload();&quot; icon=&quot;images/refresh-icon.png&quot;&gt;&lt;/menuitem&gt;
    &lt;menuitem label=&quot;К комментариям&quot; onclick=&quot;window.location='#comments';&quot; icon=&quot;images/comment_icon.gif&quot;&gt;&lt;/menuitem&gt;
    &lt;menu label=&quot;Поделиться...&quot; icon=&quot;/images/share_icon.gif&quot;&gt;
    &lt;menuitem label=&quot;Twitter&quot; icon=&quot;images/twitter_icon.gif&quot; onclick=&quot;goTo('//twitter.com/intent/tweet?text=' + document.title + ':  ' + window.location.href);&quot;&gt;&lt;/menuitem&gt;
    &lt;menuitem label=&quot;Facebook&quot; icon=&quot;images/facebook_icon16x16.gif&quot; onclick=&quot;goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);&quot;&gt;&lt;/menuitem&gt;
&lt;/menu&gt;
</pre>
<p>ID меню совпадает со значением атрибута contextmenu блока. У элемента меню могут быть атрибуты <code>label</code>, <code>icon</code> и <code>onclick</code>. Label и icon определяют внешний вид. Onclick, понятно, функционал.</p>
<p>Пока что только Firefox поддерживает данную спецификацию. И, если честно, не похоже, что это жизненно необходимая фишка. Так что другие браузеры, не скоро подтянутся к Firefox&#8217;у.</p>
<p>А вот и <a href="/blog/demos/html5/contextmenu/">демо</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=322</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как проверить, работает ли Popup Blocker в браузере?</title>
		<link>http://www.falsecode.ru/blog/?p=309</link>
		<comments>http://www.falsecode.ru/blog/?p=309#comments</comments>
		<pubDate>Fri, 02 Mar 2012 14:03:33 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=309</guid>
		<description><![CDATA[Некоторым сайтам не хватает одного окна, и они открывают новые. Все ненавидят эти всплывающие окна, но иногда без них никак. Однако, проблема в том, что во всех современных браузерах встроен, так называемый, Popup Blocker &#8212; механизм блокировки всплывающих окон. Он включен по умолчанию. И это приводит к тому, что окно, которое мы хотим открыть, не [...]]]></description>
			<content:encoded><![CDATA[<p>Некоторым сайтам не хватает одного окна, и они открывают новые. Все ненавидят эти всплывающие окна, но иногда без них никак. Однако, проблема в том, что во всех современных браузерах встроен, так называемый, Popup Blocker &#8212; механизм блокировки всплывающих окон. Он включен по умолчанию. И это приводит к тому, что окно, которое мы хотим открыть, не открывается. Конечно, браузер сигнализирует об этом, но кого это волнует? Да и не всегда его сигнализация очевидна пользователям. Особенно начинающим.<br />
<span id="more-309"></span><br />
Так как же проверить, открылось наше окно или заблокировано механизмом блокировки?</p>
<pre class="brush: jscript; title: ; notranslate">
var popUp, windowName, attempts, attempt;

function chromedetect() {

	if (popUp.innerHeight &gt; 1){
		done();
	}
	else {
		attempt ++;
		if (attempt &gt; attempts) {
			blocked();
		}
		else {
			setTimeout(chromedetect, 2000);
		}
	}
}

function blocked() {
	alert('Пожалуйста, разблокируйте всплывающее окно и обновите страницу.')
}

function done() {
	alert('Наконец-то!');
}

windowName = 'userConsole'; 

popUp = window.open('http://falsecode.ru', windowName);

attempts = 3;
attempt = 0;

if (popUp == null || typeof popUp == 'undefined' ) {
	blocked();
}
else if (popUp &amp;&amp; popUp.innerHeight &lt; 1) {
	// Хром еще не открыл окно, нужно это обработать.
	chromedetect();
}
else {
	done();
}
</pre>
<p>Сначала, мы пытаемся открыть окно, сохраняя результат. А затем проверяем, что вернулось. Если что-то существенное,  отлично. Если нет, то показываем сообщение о том, что вероятно Popup Blocker браузера включен, и с этим нужно что-то делать.</p>
<p>Отдельно нужно сказать про Google Chrome. Он, как ни странно, не ведет себя как все приличные браузеры. Мы это определяем и обрабатываем в функции chromedetect(). Функция проверяет размеры окна несколько раз с интервалом в 2 секунды. И, если за это время ничего не изменилось, сдается: blocked(). Иначе всё хорошо, и вызывается функция done().</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=309</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Название новости в цепочку навигации</title>
		<link>http://www.falsecode.ru/blog/?p=301</link>
		<comments>http://www.falsecode.ru/blog/?p=301#comments</comments>
		<pubDate>Wed, 15 Feb 2012 01:39:10 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[bitrix]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=301</guid>
		<description><![CDATA[В битриксе есть множество стандартных компонент, решающих множество прикладных задач. Сейчас речь о news &#8212; комплексный компонент для работы с &#171;новостями&#187;. Этот компонент обладает одним недостатком, если мы просматриваем конкретную новость, он не заносит её название в &#171;хлебную крошку&#187;. И сделать это можно только 2 способами, либо сделать свой компонент, взяв за основу стандартный, либо [...]]]></description>
			<content:encoded><![CDATA[<p>В битриксе есть множество стандартных компонент, решающих множество прикладных задач.</p>
<p>Сейчас речь о news &#8212; комплексный компонент для работы с &#171;новостями&#187;.</p>
<p>Этот компонент обладает одним недостатком, если мы просматриваем конкретную новость, он не заносит её название в &#171;хлебную крошку&#187;.</p>
<p>И сделать это можно только 2 способами, либо сделать свой компонент, взяв за основу стандартный, либо воспользоваться вот таким хаком. То есть костылём.</p>
<p>В шаблоне news.detail (напомню, что мы работает с компонентом news, потому news.detail берем вот тут: /bitrix/templates/template-name/components/bitrix/news/.default/bitrix/news.detail. Уфф, наконец-то.) добавим файл result_modifier.php. В него добавим следующие строчки:</p>
<pre class="brush: php; title: ; notranslate">
if($arParams['ADD_SECTIONS_CHAIN'] &amp;&amp; !empty($arResult['NAME']))
{

    $arResult['SECTION']['PATH'][] = array(

        'NAME' =&gt; $arResult['NAME'],
        'PATH' =&gt; ''
    );

}
</pre>
<p>Этим кодом мы добавляем 1 лишнюю секцию в цепочку навигации. На основе этого пути компонент news уже и строит &#171;хлебную крошку&#187;. Он, правда, думает, что добавляет секцию (добавлять конкретную новость он не умеет). Но кого волнуют детали, если задача решена?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=301</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netbeans и кодировка UTF-8</title>
		<link>http://www.falsecode.ru/blog/?p=298</link>
		<comments>http://www.falsecode.ru/blog/?p=298#comments</comments>
		<pubDate>Tue, 07 Feb 2012 08:40:17 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=298</guid>
		<description><![CDATA[Netbeans &#8212; лучшая бесплатная среда, конечно. Но почему они уже столько времени не могут сделать удобной работу в разных кодировках, мне не понятно. Казалось бы, столько людей по всему миру требуют этой возможности. В последней версии авто определение кодировки вообще не работает, похоже. Хоть бы сделали ручное переключение, что ли. Ладно, пока попросим Netbeans быть [...]]]></description>
			<content:encoded><![CDATA[<p>Netbeans &#8212; лучшая бесплатная среда, конечно.</p>
<p>Но почему они уже столько времени не могут сделать удобной работу в разных кодировках, мне не понятно. Казалось бы, столько людей по всему миру требуют этой возможности.</p>
<p>В последней версии авто определение кодировки вообще не работает, похоже. Хоть бы сделали ручное переключение, что ли.</p>
<p>Ладно, пока попросим Netbeans быть вежливой и открывать файлы в UTF-8 по умолчанию.</p>
<p>Для этого нужно добавить параметр к netbeans_default_options:  <code>-J-Dfile.encoding=UTF-8</code> в файле <code>/etc/netbeans.conf</code>.</p>
<p>Это упростить немного жизнь, пока не придется работать с сайтом в Windows-1251&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=298</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>С января 2012 Microsoft обновит все IE до последней версии</title>
		<link>http://www.falsecode.ru/blog/?p=291</link>
		<comments>http://www.falsecode.ru/blog/?p=291#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:14:40 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=291</guid>
		<description><![CDATA[Отличная новость. С января 2012 года Microsoft через систему Windows Update обновит все IE до последней возможной версии. IE 6 и так потихоньку умирает. А это можно сказать выстрел в голову. Король умер, да здравствует король. Ссылка по теме: http://windowsteamblog.com/ie/&#8230;windows-7.aspx]]></description>
			<content:encoded><![CDATA[<p>Отличная новость. С января 2012 года Microsoft через систему Windows Update обновит все IE до последней возможной версии.</p>
<p>IE 6 и так потихоньку умирает. А это можно сказать выстрел в голову.</p>
<p>Король умер, да здравствует король.</p>
<p> <img src='http://www.falsecode.ru/blog/wp-includes/images/smilies/icon_airguitar.gif' alt=':bcrich:' class='wp-smiley' /> </p>
<p>Ссылка по теме: <a title="http://windowsteamblog.com/ie/b/ie/archive/2011/12/15/ie-to-start-automatic-upgrades-across-windows-xp-windows-vista-and-windows-7.aspx" href="http://windowsteamblog.com/ie/b/ie/archive/2011/12/15/ie-to-start-automatic-upgrades-across-windows-xp-windows-vista-and-windows-7.aspx">http://windowsteamblog.com/ie/&#8230;windows-7.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=291</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Netbeans и русский язык</title>
		<link>http://www.falsecode.ru/blog/?p=277</link>
		<comments>http://www.falsecode.ru/blog/?p=277#comments</comments>
		<pubDate>Thu, 24 Nov 2011 05:53:43 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=277</guid>
		<description><![CDATA[Это очень странно видеть инструментальные средства переведенные на русский язык. Например, Adobe Ilustrator. Что нажимать, куда идти абсолютно непонятно. Даже в помощи делать нечего, потому что не понятно что искать. То же и про русский Netbeans. Уже несколько раз искал как сменить язык. Каждый раз это отнимает время. Чтоб не забыть. В файле /NetBeans/etc/netbeans.conf к [...]]]></description>
			<content:encoded><![CDATA[<p>Это очень странно видеть инструментальные средства переведенные на русский язык.</p>
<p>Например, Adobe Ilustrator. Что нажимать, куда идти абсолютно непонятно. Даже в помощи делать нечего, потому что не понятно что искать.</p>
<p>То же и про русский Netbeans. Уже несколько раз искал как сменить язык. Каждый раз это отнимает время. Чтоб не забыть.</p>
<p>В файле <strong>/NetBeans/etc/netbeans.conf</strong> к параметру <strong>netbeans_default_options</strong> добавляем строку &#171;<strong>&#8212;locale en:US</strong>&#171;.</p>
<p>Всё.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=277</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как &#171;сбросить&#187; индексы массива в PHP?</title>
		<link>http://www.falsecode.ru/blog/?p=266</link>
		<comments>http://www.falsecode.ru/blog/?p=266#comments</comments>
		<pubDate>Tue, 08 Nov 2011 13:49:41 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=266</guid>
		<description><![CDATA[Да очень просто:]]></description>
			<content:encoded><![CDATA[<p>Да очень просто:</p>
<pre class="brush: php; title: ; notranslate">
$array = array_values($array);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=266</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вышла Smarty 3.1.2.</title>
		<link>http://www.falsecode.ru/blog/?p=262</link>
		<comments>http://www.falsecode.ru/blog/?p=262#comments</comments>
		<pubDate>Wed, 05 Oct 2011 13:48:05 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Проблемы]]></category>
		<category><![CDATA[html-верстка]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=262</guid>
		<description><![CDATA[Которая не дружит с русским языком. Проверить легко. В архиве лежит пример. Если в него добавить простой код: То Smarty покажет ошибку. Еще, если сохранить шаблон в UTF-8 и добавить BOM. То даже без русского в шаблоне Smarty не сможет обработать этот шаблон и отвалится с ошибкой. Ошибки, кстати, самые дурацкие, призванные, по-моему, выставить пользователя [...]]]></description>
			<content:encoded><![CDATA[<p>Которая не дружит с русским языком.</p>
<p>Проверить легко. В архиве лежит пример. Если в него добавить простой код:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div&gt;ТЕСТ&lt;/div&gt;
</pre>
<p>То Smarty покажет ошибку.</p>
<p>Еще, если сохранить шаблон в UTF-8 и добавить BOM. То даже без русского в шаблоне Smarty не сможет обработать этот шаблон и отвалится с ошибкой.</p>
<p>Ошибки, кстати, самые дурацкие, призванные, по-моему, выставить пользователя идиотом. В самых простых конструкциях Smarty будет находить синтаксические ошибки:</p>
<p>Syntax Error in template &#171;index.tpl&#187; on line 42 &#171;{include file=&#8217;header.tpl&#8217;}&#187; &#8212; Unexpected &#171;&#8216;header.tpl&#8217;&#187;, expected one of: &#171;}&#187; , &#187; &#171;.</p>
<p> <img src='http://www.falsecode.ru/blog/wp-includes/images/smilies/icon_eek.gif' alt='O_O' class='wp-smiley' /> </p>
<p>Убил целый день на это. <img src='http://www.falsecode.ru/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Пришлось откатится на 3.0.9.</p>
<p>И еще необходимым условием такого поведения 3.1.2 версии является наличие таких параметров в PHP:</p>
<pre>	php_value default_charset utf8
	php_admin_value mbstring.func_overload 2
	php_value mbstring.internal_encoding utf8</pre>
<p>Если эти переменные выставлены по-умолчанию, то никаких проблем нет.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=262</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Регулярное выражения для получения параметра URL на JavaScript</title>
		<link>http://www.falsecode.ru/blog/?p=258</link>
		<comments>http://www.falsecode.ru/blog/?p=258#comments</comments>
		<pubDate>Thu, 08 Sep 2011 02:55:12 +0000</pubDate>
		<dc:creator>nzy</dc:creator>
				<category><![CDATA[Полезности]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[RegExp]]></category>

		<guid isPermaLink="false">http://www.falsecode.ru/blog/?p=258</guid>
		<description><![CDATA[Чтоб не выдумывать каждый раз, небольшая памятка: Где name &#8212; название параметра.]]></description>
			<content:encoded><![CDATA[<p>Чтоб не выдумывать каждый раз, небольшая памятка:</p>
<pre class="brush: jscript; title: ; notranslate">

var reg = new RegExp(&quot;.*&quot;+name+&quot;=([^&amp;#]*)&quot;);
console.log(reg.exec(url))
</pre>
<p>Где name &#8212; название параметра.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.falsecode.ru/blog/?feed=rss2&#038;p=258</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

