<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Блог непонятно кого</title>
	
	<link>http://mr-ozio.ru</link>
	<description>Привет! Меня зовут Николай Соловьёв, этот блог я создал чтобы делится своим опытом и просто рассказывать о своих открытиях в разных областях своих увлечений.</description>
	<lastBuildDate>Tue, 23 Aug 2011 23:07: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>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ozio" /><feedburner:info uri="ozio" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>IE Conditional comments</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/pLOZBS5GVyc/379</link>
		<comments>http://mr-ozio.ru/379#comments</comments>
		<pubDate>Tue, 23 Aug 2011 23:07:54 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[Browser Compatibility]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[вёрстка]]></category>
		<category><![CDATA[хаки]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=379</guid>
		<description><![CDATA[Просто положу здесь эту ссылку. Не так часто требуется, но когда требуется &#8211; всегда заминка. Надоело :) &#60;!--[if IE]&#62; According to the conditional comment this is Internet Explorer&#60;br /&#62; &#60;![endif]--&#62; &#60;!--[if IE 5]&#62; According to the conditional comment this is Internet Explorer 5&#60;br /&#62; &#60;![endif]--&#62; &#60;!--[if IE 5.0]&#62; According to the conditional comment this is [...]]]></description>
			<content:encoded><![CDATA[<p>Просто положу здесь эту <a href="http://www.quirksmode.org/css/condcom.html">ссылку</a>. Не так часто требуется, но когда требуется &#8211; всегда заминка. Надоело :)</p>
<p><code>&lt;!--[if IE]&gt;<br />
According to the conditional comment this is Internet Explorer&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if IE 5]&gt;<br />
According to the conditional comment this is Internet Explorer 5&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if IE 5.0]&gt;<br />
According to the conditional comment this is Internet Explorer 5.0&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if IE 5.5]&gt;<br />
According to the conditional comment this is Internet Explorer 5.5&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if IE 6]&gt;<br />
According to the conditional comment this is Internet Explorer 6&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if IE 7]&gt;<br />
According to the conditional comment this is Internet Explorer 7&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if gte IE 5]&gt;<br />
According to the conditional comment this is Internet Explorer 5 and up&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if lt IE 6]&gt;<br />
According to the conditional comment this is Internet Explorer lower than 6&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if lte IE 5.5]&gt;<br />
According to the conditional comment this is Internet Explorer lower or equal to 5.5&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
&lt;!--[if gt IE 6]&gt;<br />
According to the conditional comment this is Internet Explorer greater than 6&lt;br /&gt;<br />
&lt;![endif]--&gt;<br />
</code></p>
<p>Всем спасибо.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/pLOZBS5GVyc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/379/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/379</feedburner:origLink></item>
		<item>
		<title>Магазин подарков со своей внутренней валютой</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/_Ak29wsmMjs/366</link>
		<comments>http://mr-ozio.ru/366#comments</comments>
		<pubDate>Mon, 08 Aug 2011 10:46:33 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Идеи]]></category>
		<category><![CDATA[идея]]></category>
		<category><![CDATA[интернет-магазин]]></category>
		<category><![CDATA[электронная коммерция]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=366</guid>
		<description><![CDATA[Что даёт: человек получает возможность выбрать в подарок только то, что он хочет, при этом, средства на подарок приходят из тех источников, откуда они обычно не приходят :) Суть &#8211; магазин подарков со своей виртуальной валютой. Каждый пользователь может сделать небольшой подарок (пользуясь любой электронной валютой пополнить счёт) любому человеку. Магазин заранее имеет привязку к [...]]]></description>
			<content:encoded><![CDATA[<p>Что даёт: человек получает возможность выбрать в подарок только то, что он хочет, при этом, средства на подарок приходят из тех источников, откуда они обычно не приходят :)</p>
<p>Суть &#8211; магазин подарков со своей виртуальной валютой. Каждый пользователь может сделать небольшой подарок (пользуясь любой электронной валютой пополнить счёт) любому человеку. Магазин заранее имеет привязку к социальным сетям и для работы с магазином не требуется регистрация, вследствие чего сделать подарок реально можно каждому.</p>
<h3>Пользователи</h3>
<p>В интернете у каждого более-менее социального пользователя, например твиттера или ЖЖ, есть сотни друзей с которыми практически каждый день идёт общение. Когда случается какое-то положительное событие или День Рождения, то, как правило, поздравление ограничивается поздравлением. Но зная себя &#8211; я могу сказать, что мне было бы не сложно для таких хороших людей, как мои друзья отправить 100-200 рублей в качестве маленького подарка. Мне было бы не жалко, но практического смысла это не имеет. Суть &#8211; создать копилку для реализации этого &laquo;не жалко&raquo;.</p>
<h3>Обоснование внутренней валюты</h3>
<p>Любая подаренная сумма обладает некоторым психологическим подтекстом. Например, 100 рублей это мало и для кого-то, возможно, даже унизительно. Поскольку подразумевается, что подарки будут небольшими, имеет смысл избавиться от этого подтекста. Точно так же можно избавится от очевидности наценки на товар в магазине (наценка &#8211; не упор:).</p>
<h3>Обоснование привязки к соц.сетям</h3>
<p>а) Поскольку потенциально к сервису уже привязан каждый пользователь соц.сети, то деньги могут копиться на счёте того человека, который не сильно и собирается пользоваться сервисом. Также, в качестве рекламной акции виртуальную валюту на счёт может пополнять и рекламодатели.</p>
<p>б) Люди любят чем-то делиться с друзьями. По этой причине они постоянно залипают в социалках. А если отправил кому-то такой подарок, то как же не поделиться этим с остальными?</p>
<h3>Простой пример</h3>
<p>У друга наступил День Рождения и хочется как-то его поздравить, но он далеко. Открываешь его виш-лист на сайте магазина и напротив каждого пункта видишь сколько виртуальных денег ему нужно чтобы купить какой-то пункт. Например осталось 500 &laquo;ништяков&raquo; для покупки айфона о котором он всегда мечтал. Выбираешь способ оплаты и кидаешь ему на счёт денег на 100 единиц валюты с пометкой, например, &laquo;на айфон&raquo; и, возможно, с каким-то поздравлением. В социальной сети появляется: &laquo;я подарил другу 100 ништяков на покупку айфона, ему осталось совсем немного &#8211; подари праздник другу!&raquo;. Таким образом друг получает что-то из своего виш-листа в подарок. Разве не чудесно? :)</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/_Ak29wsmMjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/366/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/366</feedburner:origLink></item>
		<item>
		<title>Функции для работы с Cookie на javascript</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/qZ22-HG1sVE/361</link>
		<comments>http://mr-ozio.ru/361#comments</comments>
		<pubDate>Mon, 08 Aug 2011 09:53:30 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=361</guid>
		<description><![CDATA[Себе на заметку, чтоб было откуда их взять по-быстрому. function getCookie( name ) { var start = document.cookie.indexOf( name + "=" ); var len = start + name.length + 1; if ( ( !start ) &#038;&#038; ( name != document.cookie.substring( 0, name.length ) ) ) { return null; } if ( start == -1 ) [...]]]></description>
			<content:encoded><![CDATA[<p>Себе на заметку, чтоб было откуда их взять по-быстрому.</p>
<p><code>function <strong>getCookie</strong>( name ) {<br />
    var start = document.cookie.indexOf( name + "=" );<br />
    var len = start + name.length + 1;<br />
    if ( ( !start ) &#038;&#038; ( name != document.cookie.substring( 0, name.length ) ) ) {<br />
        return null;<br />
    }<br />
    if ( start == -1 ) return null;<br />
    var end = document.cookie.indexOf( ';', len );<br />
    if ( end == -1 ) end = document.cookie.length;<br />
    return unescape( document.cookie.substring( len, end ) );<br />
}</code></p>
<p><code>function <strong>setCookie</strong>( name, value, expires, path, domain, secure ) {<br />
    var today = new Date();<br />
    today.setTime( today.getTime() );<br />
    if ( expires ) {<br />
        expires = expires * 1000 * 60 * 60 * 24;<br />
    }<br />
    var expires_date = new Date( today.getTime() + (expires) );<br />
    document.cookie = name+'='+escape( value ) +<br />
        ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()<br />
        ( ( path ) ? ';path=' + path : '' ) +<br />
        ( ( domain ) ? ';domain=' + domain : '' ) +<br />
        ( ( secure ) ? ';secure' : '' );<br />
}</code></p>
<p><code>function <strong>deleteCookie</strong>( name, path, domain ) {<br />
    if ( getCookie( name ) ) document.cookie = name + '=' +<br />
            ( ( path ) ? ';path=' + path : '') +<br />
            ( ( domain ) ? ';domain=' + domain : '' ) +<br />
            ';expires=Thu, 01-Jan-1970 00:00:01 GMT';<br />
}</code></p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/qZ22-HG1sVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/361/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/361</feedburner:origLink></item>
		<item>
		<title>Декодер шрифта Брайля (шрифтбрайля.рф)</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/I-ZUi8oWOTI/357</link>
		<comments>http://mr-ozio.ru/357#comments</comments>
		<pubDate>Thu, 04 Aug 2011 17:09:27 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Портфолио]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[дозор]]></category>
		<category><![CDATA[портфолио]]></category>
		<category><![CDATA[шрифт Брайля]]></category>
		<category><![CDATA[шрифтбрайля.рф]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=357</guid>
		<description><![CDATA[Шрифт Брайля был разработан для чтения книг слепыми людьми посредством тактильного контакта с поверхностью (кому интересно &#8211; можете почитать в Википедии), и из-за своего непохожего на обычный текст вида стал популярен для различного рода шифровок, вследствие чего его часто называют &#171;шифром Брайля&#187;. Достаточно долгое время играю в разного рода логические игры, где используются подобные шифровки [...]]]></description>
			<content:encoded><![CDATA[<p>Шрифт Брайля был разработан для чтения книг слепыми людьми посредством тактильного контакта с поверхностью (кому интересно &#8211; можете <a href="http://ru.wikipedia.org/wiki/Шрифт_Брайля" target="_blank">почитать</a> в Википедии), и из-за своего непохожего на обычный текст вида стал популярен для различного рода шифровок, вследствие чего его часто называют &laquo;шифром Брайля&raquo;.</p>
<p>Достаточно долгое время играю в разного рода логические игры, где используются подобные шифровки и для оптимизации времени, а также для упращения самого процесса приходится писать всякие скриптики. Совсем недавно пришла идея, а за ней (на редкость) не заржавела и <a href="http://шрифтбрайля.рф" target="_blank">реализация декодера шрифта Брайля</a>.</p>
<div id="attachment_358" class="wp-caption aligncenter" style="width: 490px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://шрифтбрайля.рф" target="_blank"><img class="size-full wp-image-358" title="Шрифт Брайля" src="http://mr-ozio.ru/wp-content/uploads/2011/08/img.png" alt="" width="480" height="286" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Собственно он :)</p></div>
<p>И поскольку многое я сделал исключительно для саморазвития &#8211; могу отметить несколько интересных функций, например все изменения введённых символов сохраняются в адресной строке, т.е. ссылку на набранную строку можно отправить кому угодно. Ещё, например, Помимо прямого дешифра используется и обратный, т.е. когда введены точки 1,2 и 3 отдельным столбиком выводится результат дешифровки 4, 5 и 6, т.к. в задании может не быть чёткой ясности о том что есть пустая точка, а что заполненная.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/I-ZUi8oWOTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/357/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/357</feedburner:origLink></item>
		<item>
		<title>Клонирование объекта в javascript</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/rN7be9VjcEI/352</link>
		<comments>http://mr-ozio.ru/352#comments</comments>
		<pubDate>Mon, 01 Aug 2011 09:22:27 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[eval]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[stringify]]></category>
		<category><![CDATA[uneval]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=352</guid>
		<description><![CDATA[Разрабатываю тут на работе шаблонизатор (эпопея, реально) на js и в одной из рекурсий столкнулся с проблемой &#8211; создаваемый объект не является совершенно новым, а лишь является ссылкой оригинального, что приводило к некоторым косякам. var obj = { a: 1 }; var obj1 = obj; obj1.a = 0; // при этом obj.a также становится равным [...]]]></description>
			<content:encoded><![CDATA[<p>Разрабатываю тут на работе шаблонизатор (эпопея, реально) на js и в одной из рекурсий столкнулся с проблемой &#8211; создаваемый объект не является совершенно новым, а лишь является ссылкой оригинального, что приводило к некоторым косякам.</p>
<p><code>var obj = { a: 1 };<br />
var obj1 = obj;<br />
obj1.a = 0; // при этом obj.a также становится равным 0. </code></p>
<p>Соответственно потребовалось нечто, что смогло бы создавать копию объекта без ссылки на оригинальный. После <a href="http://www.thespanner.co.uk/2008/04/10/javascript-cloning-objects/" target="_blank">недолгого поиска</a> было найдено решение &#8211; волшебная функция uneval (обратное от функции <a href="http://javascript.ru/eval" target="_blank">eval</a>). Выглядит оно потрясающе элегантно:</p>
<p><code>function clone(o) {<br />
    return eval(uneval(o));<br />
}</code></p>
<p>Радость была бы абсолютной не узнай я, что функция uneval не работает не только в IE, но и в Опере, и даже в WebKit. Печаль была безгранична. В замен этому решению было придумано собственное, не сильно сложнее:</p>
<p><code>function clone(o) {<br />
	var obj = {};<br />
	for(var i in o){<br />
		obj[i] = o[i];<br />
	}<br />
	return obj;<br />
}</code></p>
<p>Очевидно &#8211; немного криво, поскольку не учитывается тип входящего объекта (вдруг это массив или строка?). Протестил и опечалился, в рекурсии оно почему-то опять портит воздух. Даже после всего этого я не стал унывать и спустя выходные решение нашлось внезапно в начале рабочего дня:</p>
<p><code>function clone(o) {<br />
	return eval("("+JSON.stringify(o)+")");<br />
}</code></p>
<p>Честно говоря плохо понимаю, что это за глобальный объект JSON и откуда он взялся (вероятно какая-то дыра в моём убогом самообразовании), но его замечательный метод stringify выполняет примерно то же, что и print_r в php. При этом этот способ вполне кроссбраузерен &#8211; протестил в IE9, FF5, Opera 11 и Chrome 11 (более ранние версии проверять лень). Придётся убить заготовку поста про мой самописный скрипт print_r для js.</p>
<p>P.S. Коллега подсказал функцию которую он использовал сам (с учётом всякого), может пригодиться:</p>
<p><code>function clone(obj)<br />
{<br />
    if(obj == null || typeof(obj) != 'object')<br />
    {<br />
        return obj;<br />
    }<br />
    var temp = {};<br />
    for(var key in obj)<br />
    {<br />
        temp[key] = clone(obj[key]);<br />
    }<br />
    return temp;<br />
}</code></p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/rN7be9VjcEI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/352/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/352</feedburner:origLink></item>
		<item>
		<title>Идея для гео-локационного сервиса</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/AO2QyMtnytk/348</link>
		<comments>http://mr-ozio.ru/348#comments</comments>
		<pubDate>Fri, 21 Jan 2011 15:11:22 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Идеи]]></category>
		<category><![CDATA[Google Latitude]]></category>
		<category><![CDATA[идея]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=348</guid>
		<description><![CDATA[А вот вам отличная идея рождённая @golovlev, когда я ему рассказывал про возможности Google Локатора. Суть идеи &#8211; автоматизация чекинов в гео-локационных сервисах посредством Google Локатора. Механика такая: На телефон в фон вешается Google Локатор. Серверная часть принимает координаты и когда в течение некоторого времени человек находится на одном месте, при этом не относящемся к [...]]]></description>
			<content:encoded><![CDATA[<p>А вот вам отличная идея рождённая <a href="http://twitter.com/golovlev">@golovlev</a>, когда я ему рассказывал про возможности Google Локатора.</p>
<p>Суть идеи &#8211; автоматизация чекинов в гео-локационных сервисах посредством Google Локатора.</p>
<p><strong>Механика такая:</strong></p>
<p>На телефон в фон вешается Google Локатор. Серверная часть принимает координаты и когда в течение некоторого времени человек находится на одном месте, при этом не относящемся к категориям &laquo;работа&raquo; или &laquo;дом&raquo; отправляет на телефон сообщение с предложением зачекиниться. Можно предложить, например, место в котором человек чекинился находясь в этом самом месте или открыть настроенное гео-локационное приложение.</p>
<p>Для решении задачи существуют все необходимые API. Фактически готовая к реализации идея не имеющая готовой реализации.</p>
<p>Хорошая идея, но всё ровно не реализую, наверное.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/AO2QyMtnytk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/348/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/348</feedburner:origLink></item>
		<item>
		<title>position:fixed в ie6</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/fcgQQMjOF1M/341</link>
		<comments>http://mr-ozio.ru/341#comments</comments>
		<pubDate>Wed, 19 Jan 2011 07:51:26 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[опыт]]></category>
		<category><![CDATA[хак]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=341</guid>
		<description><![CDATA[Как известно, ie6 не поддерживает css-правило position: fixed, для иммитации существует вот такой несложный хак: #some { &#160;&#160;&#160;&#160;position: fixed; &#160;&#160;&#160;&#160;top: 10px; &#160;&#160;&#160;&#160;left: 10px; &#160;&#160;&#160;&#160;width: 100px; &#160;&#160;&#160;&#160;height: 100px; } /* эмуляция position: fixed */ * html #some { &#160;&#160;&#160;&#160;position: absolute; &#160;&#160;&#160;&#160;top: expression(document.getElementsByTagName( 'body' )[0].scrollTop + "px"); &#160;&#160;&#160;&#160;left: expression(document.getElementsByTagName( 'body' )[0].scrollLeft + "px"); &#160;&#160;&#160;&#160;margin-left: 10px; /* эмуляция [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно, ie6 не поддерживает css-правило position: fixed, для иммитации существует вот такой несложный хак:</p>
<p><code>#some {<br />
&nbsp;&nbsp;&nbsp;&nbsp;position: fixed;<br />
&nbsp;&nbsp;&nbsp;&nbsp;top: 10px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;left: 10px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;width: 100px;<br />
&nbsp;&nbsp;&nbsp;&nbsp;height: 100px;<br />
}<br />
/* эмуляция position: fixed */<br />
* html #some {<br />
&nbsp;&nbsp;&nbsp;&nbsp;position: absolute;<br />
&nbsp;&nbsp;&nbsp;&nbsp;top: expression(document.getElementsByTagName( 'body' )[0].scrollTop + "px");<br />
&nbsp;&nbsp;&nbsp;&nbsp;left: expression(document.getElementsByTagName( 'body' )[0].scrollLeft + "px");<br />
&nbsp;&nbsp;&nbsp;&nbsp;margin-left: 10px; /* эмуляция top: 10px; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;margin-top: 10px; /* эмуляция left: 10px; */<br />
}</code></p>
<p>У этого хака известен один досадный баг &#8211; из-за постоянного и очень неспешного пересчёта координат див будет постоянно дёргаться. Решается эта проблема полным сносом доктайпа со страницы. В некоторых случаях, кстати, этот костыль вообще не работает при наличии доктайпа на странице. Падений браузера и прочих критических проблем при использовании костыля не замечено.</p>
<p>Присутствует также ещё один минус &#8211; свойства bottom и right реализовать получится только дополнительным js-кодом. Для проектов использую jQuery, по-этому для имитации, например, <code>bottom: 10px;</code> вполне прокатывает конструкция <code>$("#some").css("margin-top", ($(window).height() - 10) + "px");</code>.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/fcgQQMjOF1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/341/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/341</feedburner:origLink></item>
		<item>
		<title>Объективные и субъективные минусы iPhone</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/9wjGcQ219Lw/333</link>
		<comments>http://mr-ozio.ru/333#comments</comments>
		<pubDate>Mon, 17 Jan 2011 14:42:09 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Всякое]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone 4]]></category>
		<category><![CDATA[обзор]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=333</guid>
		<description><![CDATA[Уже несколько лет пользуюсь iPhone и уже около 3-х месяцев как владею iPhone 4. Любой, купивший сей аппарат &#8211; в лице общественности автоматически становится особенным человеком, самым цензурным словом &#8211; &#171;маколюбом&#187;, а также объектом тысячи выпадов против iPhone, Apple и прочих Стивов Джобсов от людей иного вероисповедания. Не каждый человек готов спорить и устойчив к [...]]]></description>
			<content:encoded><![CDATA[<p>Уже несколько лет пользуюсь iPhone и уже около 3-х месяцев как владею iPhone 4. Любой, купивший сей аппарат &#8211; в лице общественности автоматически становится особенным человеком, самым цензурным словом &#8211; &laquo;маколюбом&raquo;, а также объектом тысячи выпадов против iPhone, Apple и прочих Стивов Джобсов от людей иного вероисповедания. Не каждый человек готов спорить и устойчив к вызовам на священные войны, а значит начинает нести невразумительную пургу в защиту аппарата, тем самым подтверждая в умах иных гепотизу о &laquo;сектантстве&raquo;. Чтобы отфильтровать весь спам, флуд и оффтоп, я решил выписать полный перечень претензий к данному устройству, как объективных, так и субъективных. В помощь при выборе устройства.</p>
<h3>Объективные минусы iPhone:</h3>
<ul>
<li>Привязка к одной конкретной библиотеке iTunes (т.е. к одному компьютеру), в то время как всё файловое взаимодействие с аппаратом происходит только через синхронизацию iTunes, а значит:</li>
<li>Нельзя использовать телефон как флешку, т.е. с любого компа просто закинуть на него любой файл, песню, картинку, точно также:</li>
<li>Нельзя скопировать файл из телефона на компьютер, за исключением фотографий и видео &#8211; их можно.</li>
<li>Нельзя отправлять и принимать файлы по Bluetooth.</li>
<li>Батарейка не выдерживает натиска опытного гика и сутки прожить ей достаточно тяжко, так что приходится носить с собой как минимум проводок. Проблему усугубляет:</li>
<li>Отсутствие сменной батареи. Ну, точнее, сменить её можно, но это нелёгкая хирургическая и не сказать что дешевая операция.</li>
<li>Проблема потери сети при захвате левой части корпуса на iPhone 4 (антена-гейт) действительно имеет место и напрягает, а бампер который лечит эту проблему превращает отличный дизайн корпуса как внешне, так и тактильно в бюджетную пластмассовую нокию.</li>
<li>С компасом беда &#8211; иногда очень долго настраивается, а иногда просто не правильно показывает.</li>
<li>Чтобы зимой тыкать в экран приходится снимать перчатки, тыкать носом или, как некоторые, языком).</li>
<li>Нельзя использовать телефон как хот-спот (точка доступа Wi-Fi) чтобы раздавать интернет на другие устройства, как с определённых версий Android. Между тем функция анонсирована к мартовскому апдейту.</li>
<li>iPhone игрушка труднодоступная. Или много денег, или много мозголомства с покупкой и доставкой аппарата из другой страны.</li>
</ul>
<p>Можно тыщу лет спорить про то что это вовсе и не минусы, но для многих людей это действительно объективные минусы.</p>
<h3>Спорные, глупые, придирочные, решаемые и прочие субъективные минусы:</h3>
<ul>
<li>Сразу же при покупке &#8211; микро-сим! Не сказать что беда серьёзная, но небольшой элемент паники присутствует.</li>
<li>Для пользователей Windows &#8211; iTunes. Последнее время он стал чуть менее тормозным, но тем не менее остаётся чрезвычайно ненативным и не менее чрезвычайно медлительным.</li>
<li>Отсутствие Flash-плеера.</li>
<li>Отсутствие поддержки карт памяти.</li>
<li>Нельзя ставить полный трек из медиатеки на звонок или будильник. Только 30-секундный сэмпл.</li>
<li>Нет синхронизации через Wi-Fi.</li>
<li>Если iPhone 4 &#8211; покупайте защитную плёнку на заднюю панель, иначе вся исцарапанная будет.</li>
<li>В России нельзя покупать медиа-контент из iTunes Store, для этого приходится покупать подарочные сертификаты по завышенным ценам (впрочем к iPhone это относится весьма отдалённо).</li>
<li>Многим не нравится маленький экран и отсутствие Super AMOLED.</li>
<li>Хороший, грамотный и адекватный софт в AppStore бесплатен только если его сделал Google :P</li>
<li>Для многих людей сложно сразу и без проблем привязать карту к AppStore, а иногда, по непонятным причинам карты и не привязываются, после чего приходится заказывать выпуск дополнительных виртуальных карт, помимо этого:</li>
<li>Отсутствует возможность расплачиваться за приложения прямо со счёта мобильного (как в Ovi) или другими платёжными системами, например, Google Checkout (как в Android).</li>
<li>Воистину корявая автокоррекция текста сама заменяющая слова, при этом сложно отменить вариант предложенный телефоном, отключил сразу.</li>
<li>Многозадачности нет, есть быстрый запуск программы в то же состояние, в котором она была закрыта. Многозадачность имитируется Push-уведомлениями. С одной стороны для многих очевидный минус, с другой стороны от части гениальное решение переносящее фоновую работу приложений в облако, от чего не убивается батарейка и не тормозит телефон.</li>
<li>Почему-то недоведены до ума нативные приложения &laquo;Диктофон&raquo;, &laquo;Погода&raquo; и &laquo;Часы&raquo;. Первый хоть и выглядит красиво работает действительно глючно и пользоваться неудобно, каким-то образом умудрялся записывать звук в разных форматах. &laquo;Погода&raquo; предлагает очень небольшой список городов, названия которых ни разу не локализованы. В приложении &laquo;Часы&raquo; очень мало городов для выбора времени и, особенно последнее время, много глючащий будильник и иногда не звонящий таймер.</li>
<li>Ну и классическое: нет радио, нет тв, нет Java-приложений, нет Wi-Max 4G Professional Enterprise Edition 2000 Yota 2.0 beta, а ведь даже на китайских поделках есть!</li>
</ul>
<p>Но стоит помнить, что не одними минусами славен iPhone. Он, вообще-то, отличный :)</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/9wjGcQ219Lw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/333/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/333</feedburner:origLink></item>
		<item>
		<title>Определяем iPad с помощью JavaScript</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/W59kjIkJLVg/325</link>
		<comments>http://mr-ozio.ru/325#comments</comments>
		<pubDate>Thu, 13 Jan 2011 15:27:42 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[user-agent]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=325</guid>
		<description><![CDATA[Поскольку моя работа в данный момент связана с проектами для московского правительства, то вполне очевидно, что без особенной поддержки таких устройств как iPad не обойтись. Нанотехнологии, инновации, Россия вперёд! Все дела, в общем. У нас на работе проблема обнаружения iPad до недавнего времени решалась грустным костылём &#8211; if($.browser.safari). Не дело. Разумеется самый простой и адекватный [...]]]></description>
			<content:encoded><![CDATA[<p>Поскольку моя работа в данный момент связана с проектами для московского правительства, то вполне очевидно, что без особенной поддержки таких устройств как iPad не обойтись. Нанотехнологии, инновации, Россия вперёд! Все дела, в общем. У нас на работе проблема обнаружения iPad до недавнего времени решалась грустным костылём &#8211; <code>if($.browser.safari)</code>. Не дело.</p>
<p>Разумеется самый простой и адекватный способ &#8211; распарсить строку юзерагента. Выглядит она у iPad примерно так:</p>
<p><code>Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10</code></p>
<p>Для определения же, создаём переменную <code>isiPad</code>:</p>
<p><code>var isiPad = navigator.userAgent.match(/iPad/i) != null;</code></p>
<p>Далее просто используем условие <code>if(isiPad)</code> или <code>if(!isiPad)</code>.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/W59kjIkJLVg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/325/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/325</feedburner:origLink></item>
		<item>
		<title>Определение наличия тега на странице с помощью jquery</title>
		<link>http://feedproxy.google.com/~r/ozio/~3/2cey27RE_6k/321</link>
		<comments>http://mr-ozio.ru/321#comments</comments>
		<pubDate>Mon, 20 Dec 2010 09:27:45 +0000</pubDate>
		<dc:creator>mr.ozio</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[решения]]></category>

		<guid isPermaLink="false">http://mr-ozio.ru/?p=321</guid>
		<description><![CDATA[По-скольку логичное с точки зрения кодинга if($("#id")) не катит. Делается так: if($("#id").length). Соответственно с любым другим селектором тоже катит. Спасибо за внимание.]]></description>
			<content:encoded><![CDATA[<p>По-скольку логичное с точки зрения кодинга <code>if($("#id"))</code> не катит. Делается так: <code>if($("#id").length)</code>. Соответственно с любым другим селектором тоже катит.</p>
<p>Спасибо за внимание.</p>
<img src="http://feeds.feedburner.com/~r/ozio/~4/2cey27RE_6k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mr-ozio.ru/321/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mr-ozio.ru/321</feedburner:origLink></item>
	</channel>
</rss>

