<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Studio Aleko Design</title>
		<link>http://studioad.ru/</link>
		<description>Блог Studio AD</description>
		<lastBuildDate>Sun, 04 Dec 2011 13:47:29 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://studioad.ru/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Замыкания</title>
			<description>&lt;div class=&apos;images&apos;&gt;&lt;div style=&apos;background: none repeat scroll 0 0 #f5fafd;color: #333333;font-family: &quot;Microsoft Sans serif&quot;;font-size: 55px !important;line-height: 99px;margin: 0 10px;padding: 0 10px 10px;&apos;&gt;wtf is {closure}?&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Есть такой страшный термин как «&lt;strong&gt;замыкание&lt;/strong&gt;» (closure). В истории наращивания моего опыта было три стадии моего осознования этого приема. Первая стадия заключалась в том что я не представлял значение и смысл применения замыканий (речь идет о javascript). Вторая стадия заключалась в том, что я понял принцип но не использовал замыкания в своих скриптах, так как не видел им применения. Третья стадия обуславливалась постоянным применением замыканий и получением кайфа от их удобства. В этой статье я постараюсь сразу показать вам их смысл и полезность.&lt;/p&gt;...</description>
			<content:encoded>&lt;div class=&apos;images&apos;&gt;&lt;div style=&apos;background: none repeat scroll 0 0 #f5fafd;color: #333333;font-family: &quot;Microsoft Sans serif&quot;;font-size: 55px !important;line-height: 99px;margin: 0 10px;padding: 0 10px 10px;&apos;&gt;wtf is {closure}?&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Есть такой страшный термин как «&lt;strong&gt;замыкание&lt;/strong&gt;» (closure). В истории наращивания моего опыта было три стадии моего осознования этого приема. Первая стадия заключалась в том что я не представлял значение и смысл применения замыканий (речь идет о javascript). Вторая стадия заключалась в том, что я понял принцип но не использовал замыкания в своих скриптах, так как не видел им применения. Третья стадия обуславливалась постоянным применением замыканий и получением кайфа от их удобства. В этой статье я постараюсь сразу показать вам их смысл и полезность.&lt;/p&gt;$CUT$&lt;p&gt;В javascript есть такой термин как &lt;strong&gt;область видимости&lt;/strong&gt;. Образно говоря область видимости переменной это пространство в котором к этой переменной можно обратиться напрямую. Традиционно разделяют два вида областей видимости, это глобальная область видимости и локальные области видимости (на самом деле это одно и то же, только на разных уровнях). Глобальная область видимости доступна нам изначально и реализуется объектом window. Локальные области видимости появляются когда мы создаем функции. Так вот, когда вы создаете функцию, то в её теле вы имеете доступ как к локальной области видимости самой функции так и к областям видимости стоящим выше (к той, в которой определена наша функция и дальше к глобальной области). Такая модель работы кода, когда функция представляет собой комбинацию программного кода и цепочки областей видимости, в которой этот код исполняется, в программировании и называется замыканием. Так что технически &lt;strong&gt;любая функция в javascript — это замыкание&lt;/strong&gt;. Другое дело что традиционно замыканиями называют лишь некоторые случаи их применения. &lt;a href=&quot;http://www.site1357.ru/&quot;&gt;Создать сайт самому бесплатно&lt;/a&gt; это ни коим образом не мешает.&lt;/p&gt;&lt;p&gt;Есть ещё одна вещь, которая важна для понимания замыканий. Называется она garbage collector или сборщик мусора. Это технология которая позволяет интерпретатору javascript очищать память от уже использованных данных и не допускать переполнения памяти. Выглядит это примеро так:&lt;/p&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt;function outer(i){ &lt;br&gt;&amp;nbsp;&amp;nbsp;function inner(){++i;} &lt;br&gt;&amp;nbsp;&amp;nbsp;inner(); &lt;br&gt;&amp;nbsp;&amp;nbsp;return i; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;alert(outer(1)); // 2 &lt;br&gt;&lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;p&gt;Сначала мы объявили функцию outer в глобальной области видимости, затем вызвали её. Когда она начала свою работу была объявлена вложенная функция inner, которая сразу и была запущена. Затем функция outer вернула результат и завершила работу. Как только это произошло, в дело вступил сборщик кода. Он определил что функция inner более недоступна для вызова, а значит может быть удалена. А теперь посмотрите на этот пример:&lt;/p&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt;function outer(i){ &lt;br&gt;&amp;nbsp;&amp;nbsp;return function inner(){return ++i;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;outer = outer(1); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;alert(outer()); // 2 &lt;br&gt;alert(outer()); // 3 &lt;br&gt;alert(outer()); // 4 &lt;br&gt;&lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;p&gt;Внимательно разберем код выше. Сначала мы объявили функцию outer, которая возвращает вложенную функцию inner в качестве результата своей работы. Далее мы переписали значение переменной outer и вместо самой функции outer поместили в переменную результат её вызова. По аналогии с предыдущим примером функция outer должна была быть удалена сборщиком мусора так как к ней, кажется, больше нет доступа, но на самом деле это не так. Мы действительно не можем больше вызвать первоначальную outer, так как она перезаписана, но, как показывают последующие три алерта, функция не была удалена и переменная i по прежнему существует. Произошло это потому, что на первоначальную функцию outer по прежнему осталась ссылка. Она существует &lt;strong&gt;в цепочке областей видимости&lt;/strong&gt; результата работы первоначальной функции outer. Таким образом у нас получилось создать функцию, которая считает собственные вызовы. Такие конструкции обычно и называют явными замыканиями. Пример выше так же иллюстрирует ещё одно важное свойство замыканий — инкапсуляцию данных. Обратите внимание, после того как мы переписали первичную функцию outer, мы теряем возможность изменить каким либо образом (кроме предусмотренного самой функцией) переменную i. Это и есть&lt;em&gt; инкапсуляция&lt;/em&gt;, проще говоря &lt;em&gt;возможность взаимодействовать с внутренними свойствами объекта исключительно посредством специально предусмотренных интерфейсов&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Инкапсуляция данных посредством замыкания используется в моей галерее iLoad. Галерея имеет множество частных свойств и переменных, которые продолжают существовать всё время использования галереи но недоступны извне.&lt;/p&gt;&lt;p&gt;Таким образом можно объяснить смысл самого термина. Функция «замыкает» на себе вышестоящие области видимости и не дает им быть удаленными если к ним теряется доступ, а основное применение замыканий в программировании — хранение данных между вызовами функций и инкапсуляция данных.&lt;/p&gt;&lt;p&gt;Хорошая ссылка по теме: &lt;a href=&quot;http://shamansir.github.com/JavaScript-Garden/#function.closures&quot; rel=&quot;nofollow&quot;&gt;Замыкания на Javascript Garden&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-12-04-150</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-12-04-150</guid>
			<pubDate>Sun, 04 Dec 2011 13:47:29 GMT</pubDate>
		</item>
		<item>
			<title>iLoad 3.3.3</title>
			<description>&lt;div class=&apos;images&apos;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/68802015.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;

&lt;p&gt;Выпускаю в свет &lt;a href=&quot;http://studioad.ru/index/0-8&quot;&gt;новую версию iLoad&lt;/a&gt;. В версии 3.3.3 не исправлялись какие либо баги, так как по моим данным их обнаружено не было. Если вы всё же что-то нашли — сообщайте об этом в комментариях и все ошибки скрипта будут исправлены. Был добавлен новый функционал который сделал галерею ещё более гибкой в плане настроек. Названия некоторых настроек были изменены.&lt;/p&gt;...</description>
			<content:encoded>&lt;div class=&apos;images&apos;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/68802015.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;

&lt;p&gt;Выпускаю в свет &lt;a href=&quot;http://studioad.ru/index/0-8&quot;&gt;новую версию iLoad&lt;/a&gt;. В версии 3.3.3 не исправлялись какие либо баги, так как по моим данным их обнаружено не было. Если вы всё же что-то нашли — сообщайте об этом в комментариях и все ошибки скрипта будут исправлены. Был добавлен новый функционал который сделал галерею ещё более гибкой в плане настроек. Названия некоторых настроек были изменены.&lt;/p&gt;$CUT$

&lt;p&gt;Во первых изменено название настройки L.attribute, отвечающей за название атрибута из которого берется название фотографии, на &lt;b&gt;L.infoAttribute&lt;/b&gt;. Это пришлось сделать в связи с добавлением второй аналогичной настройки. Правильное, с точки зрения seo, &lt;a href=&quot;http://www.slon-media.ru&quot;&gt;создание сайтов&lt;/a&gt; требует помечать внешние ссылки с помощью &lt;i&gt;rel=&apos;nofollow&apos;&lt;/i&gt; таким образом закрывая их от индексации. Ранее галерея не позволяла сделать этого, так как использовала атрибут rel для своих нужд. Теперь вы можете указать любой свободный атрибут в настройке &lt;b&gt;L.markAttribute&lt;/b&gt; и освободить rel.&lt;/p&gt;

&lt;p&gt;Во вторых были добавлены настройки &lt;b&gt;L.showName&lt;/b&gt;, &lt;b&gt;L.showDesc&lt;/b&gt;, &lt;b&gt;L.showSet&lt;/b&gt; и &lt;b&gt;L.showInfo&lt;/b&gt; (бывшая L.info), которые отвечают за отображение названия, описания, информации о сете и информации о файле под изображением. Они позволяют легко всё отключить.&lt;/p&gt;

&lt;p&gt;В третьих была добавлена переменная &lt;b&gt;L.lock&lt;/b&gt;, которая по умолчанию содержит значение false. Если ей в любой момент времени задать значение true, то галерею нельзя будет закрыть после открытия. Таким образом вы можете создавать свои диалоговые окна, заставляя юзера выбирать из предложенных вариантов а не просто закрывать выскочившее окно.&lt;/p&gt;

&lt;p&gt;B наконец был добавлен новый метод &lt;b&gt;L.set()&lt;/b&gt;, который давно уже должен был быть добавлен. Он позволяет запустить сет фотографий, расположенных на странице, из любого её места зная только имя сета. Метод принимает два аргумента. Первый агрумент это имя открываемого сета, второй - номер фотографии в сете, которую нужно открыть. Если второй аргумент не указан или в нем указан номер несуществующей фотографии, будет открыта первая фотография в сете. Вот пример использования метода: &lt;b&gt;L.set(&apos;Природа&apos;,3)&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Если у вас есть идеи и предложения по поводу усовершенствования галереи — пишите их в комментариях к посту. &lt;i&gt;И если вам нравится моя галерея, обязательно твитните об этом и нажмите на кнопку «Это интересно», которая расположена ниже.&lt;/i&gt; Пусть больше людей узнает об этом хорошем скрипте.&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-11-16-142</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-11-16-142</guid>
			<pubDate>Wed, 16 Nov 2011 15:04:15 GMT</pubDate>
		</item>
		<item>
			<title>MyCMS</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/57717968.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; С момента начала моего изучения php я захотел написать свою систему управления контентом. Ну вы понимаете, &lt;i&gt;совсем свою&lt;/i&gt;, пусть даже и со всякими банальнейшими плюшками и прибамбасами «как у всех». Но времени на разработку своей системы катастрофически не хватало. Я был занят исключительно созданием и продвижением своей &lt;a href=&quot;http://oboi.ws&quot;&gt;коллекции обоев&lt;/a&gt; и ещё пары проектов, в прочем не очень удачно. В один прекрасный день, уж не знаю, может муха меня неправильная укусила, &lt;a href=&quot;http://goroskopov.net/category/sonnik/&quot;&gt;сонник&lt;/a&gt; подсказал чего лишнего или мешком пыльным огрело, но я понял что дальнейшее продвижение сайта, представляющего собой башню из костылей, смысла не имеет. К тому времени код движка, на котором работают пока все мои сайты, разросся на несколько файлов и классов и являл собой дикий хаос используемых и уже отживших функций, заброшенных кусков кода и запросов вникуда.&lt;/p&gt;...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/57717968.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; С момента начала моего изучения php я захотел написать свою систему управления контентом. Ну вы понимаете, &lt;i&gt;совсем свою&lt;/i&gt;, пусть даже и со всякими банальнейшими плюшками и прибамбасами «как у всех». Но времени на разработку своей системы катастрофически не хватало. Я был занят исключительно созданием и продвижением своей &lt;a href=&quot;http://oboi.ws&quot;&gt;коллекции обоев&lt;/a&gt; и ещё пары проектов, в прочем не очень удачно. В один прекрасный день, уж не знаю, может муха меня неправильная укусила, &lt;a href=&quot;http://goroskopov.net/category/sonnik/&quot;&gt;сонник&lt;/a&gt; подсказал чего лишнего или мешком пыльным огрело, но я понял что дальнейшее продвижение сайта, представляющего собой башню из костылей, смысла не имеет. К тому времени код движка, на котором работают пока все мои сайты, разросся на несколько файлов и классов и являл собой дикий хаос используемых и уже отживших функций, заброшенных кусков кода и запросов вникуда.&lt;/p&gt;$CUT$

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я не стал выдумывать сложное уникальное название будущей cms, как бы сделали многие. Вмеcто этого я назвал её единственно-логичным для меня способом — «&lt;b&gt;Моя cms&lt;/b&gt;», что при трансформации на язык кода и сети (английский язык) превратилось в краткое mycms. Логотип, который вы видите в шапке поста, придумался сам собой. На нем переплетаются буквы M и Y. Очень вероятно что систем с таким названием море, но меня это не интересует.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; И вот я оказался перед чистым документом в notepad++ которому суждено было стать индексным файлом моей новой системы. Мне предстаяло продумать архитектуру и решить каким образом будут (и будут ли?) взаимодействовать модули системы. Получилось примерно вот что следующее...&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Корневым элементом системы является каталог статических страниц. Каждая страница хранится в базе и имеет несколкьо контентных полей, таких как title, description, keywords, само поле контента страницы и специальное поле для исполняемого php кода. Php код в самом контенте страницы не исполняется, зато там работает &lt;a href=&quot;http://studioad.ru/blog/2011-10-27-132&quot;&gt;парсер условий&lt;/a&gt;, ок котором я уже писал и ещё скажу. Php поле же нужно для создания страниц на которых должно выводится нечто динамические, к примеру капча. Страницы представлены в виде древа, имеют родителей и потомков и могут образовывать сложные структуры. Для реализации этой идеи мне и потребовался &lt;a href=&quot;http://studioad.ru/blog/2011-11-10-135&quot;&gt;класс для работы с nested sets&lt;/a&gt;. Уже реализованное управление структурой страниц в модуле администрационной панели выглядит так:&lt;/p&gt;

&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/97653437.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Если присмотреться к скриншоту, видно что страницы можно вырезать и копировать. Это не до конца верно, так как если пометить страницу как вырезаемую, то вместе с помеченной страницей будут вырезаны все вложенные страницы, как буд то мы берем скальный массив за верхушку его самого высокого пика и переставляем в другое место. Так же слева от каждой страницы, точнее её алиаса (фрагмента адреса в url) стоит иконка с синей электрической вилкой. Эта иконка отображает текущий статус страницы — каждая страница может быть видима или нет. Это аналог галочки «Материал недоступен для просмотра» в блогах ucoz. Но если в блогах у данной галочки назначение очевидно, то в каталоге страниц есть ещё один нюанс. Невидимыми необходимо сделать служебные страницы, к примеру страницы ошибок. Таким образом движок системы сможет выводить их контент, но зайти на страницы по прямому адресу будет невозможно. Пример тому — страницы 404 ошибки. Далее, каждая страница в настройках имеет два очень важных выпадающих списка, вот как они выглядят в настройках редактирования страницы /admin:&lt;/p&gt;

&lt;div class=&quot;images&quot;&gt;&lt;!--IMG5--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79553468.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG5--&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Поле «Шаблон» указывает, какой глобальный шаблон будет использовать данная страница. Глобальные шаблоны это как главный шаблон в конструкторе шаблонов ucoz с тем отличием, что их может быть неограниченно много. Это делает возможным легко менять дизайны различных участков сайта. В шаблоне самой страницы и в глобальном шаблоне как и в ucoz доступны условные коды — их идея показалась мне интересной и удобной. Вы можете задавать свои дополнительные условные коды используя php поле страницы. В общем всё удобно. На страницу со списком шаблонов можно посмотреть на скриншоте ниже:&lt;/p&gt;

&lt;div class=&quot;images&quot;&gt;&lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/03755277.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Второй выпадающий список гораздо важнее и фактически является несущим во всей архитектуре. Это список доступных инстансов. Инстанс в моей системе это экземпляр модуля. Чтобы было понятнее, приведу пример. В ucoz есть модуль блога. Если вы хотите создать блог — вы его используете, а вот два блога создать уже нельзя и приходится использовать другие модули. Так вот в моей системе модуль — абстрактный образ, задающий общие свойства будущего инстанса (модуля в вашем понимании). Хотим блог — создаем инстанс модуля «блог» и называем инстанс к примеру «Мой личный блог». А когда хотим создать ещё один блог — создаем ещё один инстанс. Получается блогов мы можем сделать на сайте сколько душе угодно. Но самое интересное то, что инстанс начинает работать только после того, как размещается, «припарковывается» на одной из статических страниц. За это и отвечает выпадающий список о котором я говорю. Если страница сделана парковочной, то есть в её настройках выбран один из созданных вами инстансов, то после того как движок сайта при анализе адреса запрошенной страницы дойдет до текущего алиаса, весь остаток адреса будет отдан на обработку в инстанс. Такая обработка позволяет нам создавать интересные вещи. Например: админпанель сайта на любой странице, будь то /admin или /this/is/panel/orly, одна и та же админ панель по двум, трем, четырем разным адресам или даже две разные админпанели с разными паролями и дизайном для одного и того же сайта. Это возможно потому, что администрационная панель — тоже модуль и следовательно может иметь много инстансов, а каждый инстанс в свою очередь использует свои личные таблицы в базе данных. Таким образом инстансы существуют раздельно, как близнецы, рожденные одинаковыми но живущие разными жизнями. Шаблоны каждого инстанса можно редактировать, вот к примеру страница рекдактирвоания инстанса администрационной панели:&lt;/p&gt;

&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/73658628.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Курьезно, то, что админпанель — инстанс, дает нам &lt;b&gt;редактировать админпанель из админпанели&lt;/b&gt; что приводит к интересным последствиям, например есть страница, которая редактирует сама себя.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Модули для системы пишутся отдельно и подключаются к системе в любых количествах. Это позволит разработчикам легко встраивать в свой сайт собственные разработки, например модули статистики, блогов, форумов, каталогов файлов и так далее. Некоторые модули я напишу сам. Тот же oboi.ws будет построен на модуле фотографий.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мою систему ни в коем случае нельзя сравнивать с ucoz, так как цели передо мной стояли совершенно другие. Ucoz разработан с феноменальной защитой от идиотов, моя система напротив позволяет убить сайт тысячей изощренных способов буквально на каждом шагу. И это нормально, так как систему я писал для себя. Попробую провести аналогию. &lt;i&gt;Представьте что у вас есть доска и вам нужно отпилить от неё кусок. И есть два варианта сделать это: плотник по имени ucoz и плотник по имени mycms. Ucoz отпилит кусок доски за вас, но только так, как умеет сам, допустим 10 сантиметров с левого или правого краю, и всё. Mycms же даст вам в руки пилу и предложит пилить так как вам хочется, а вы уже в зависимости от уровня проффессионализма либо отпилите себе руки либо отрежете себе &lt;b&gt;именно такой кусок доски какой вы хотели&lt;/b&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;.&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-11-11-136</link>
			<category>студия ad</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-11-11-136</guid>
			<pubDate>Fri, 11 Nov 2011 15:07:06 GMT</pubDate>
		</item>
		<item>
			<title>Как раскрутить сайт</title>
			<description>&lt;div align=&quot;center&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/10482390.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Несколько раз меня уже просили рассказать, каким образом я раскручивал свой &lt;a href=&quot;http://oboi.ws&quot;&gt;oboi.ws&lt;/a&gt; и, так как я всё равно не могу заставить себя писать нормальные посты о его жизни как обещал, то пожалуй попробую схематично, кратко но полноценно описать всё в одном посте...</description>
			<content:encoded>&lt;div align=&quot;center&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/10482390.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Несколько раз меня уже просили рассказать, каким образом я раскручивал свой &lt;a href=&quot;http://oboi.ws&quot;&gt;oboi.ws&lt;/a&gt; и, так как я всё равно не могу заставить себя писать нормальные посты о его жизни как обещал, то пожалуй попробую схематично, кратко но полноценно описать всё в одном посте$CUT$.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Перед созданием сайта я долго искал домен и в итоге нашел &lt;b&gt;домен на котором уже размещался ранее сайт по тематике&lt;/b&gt; &lt;a href=&quot;http://oboi.ws&quot;&gt;обоев для рабочего стола&lt;/a&gt;, правда к сожалению далеко не популярный, но несколкьо беков я получил.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Несмотря на многочисленные отрицательные отзывы о сервисе и полезности 1ps.ru, в первую неделю жизни сайта &lt;b&gt;я заказал прогон по базе каталогов на элитном тарифе&lt;/b&gt;. Я не боялся быть зафильтрованным за быстрый ссылочный рост, так как был уверен в медленной индексации ссылок с каталогов. Работа была сделана быстро и результат, как мне кажется, оправдался — индексация страниц с сайта шла быстро.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Хотя выражения «внутренняя оптимизация» и звучит потерто и неинтересно, я о нем не забыл. Сайт был качественно &lt;b&gt;перелинкован&lt;/b&gt; множеством ссылок. Код был оформлен &lt;b&gt;семантически правильно&lt;/b&gt; — меню были оформлены списками, основной текст был выдвинут ближе к началу документа, а все внешние &lt;b&gt;ссылки закрыты от индексации&lt;/b&gt;. Был &lt;b&gt;создан robots.txt&lt;/b&gt; с указанием основного хоста сайта. Была настроена обновляющаяся &lt;b&gt;карта сайта&lt;/b&gt;. Ко всем картинкам были прописаны &lt;b&gt;alt&lt;/b&gt;, а ко всем ссылкам — &lt;b&gt;title&lt;/b&gt;. Текст был разбит на параграфы и упакован в тег &lt;b&gt;p&lt;/b&gt;, а заголовки выводились в тегах &lt;b&gt;h&lt;/b&gt;. К сожалению мой тогдашний опыт внутренней оптимизации был ничтожно мал.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Материалы на сайт я &lt;b&gt;добавлял каждый день&lt;/b&gt;, писал &lt;b&gt;уникальные названия&lt;/b&gt; для фотографий, иногда писал описания, &lt;b&gt;никогда не копировал текст с чужих сайтов&lt;/b&gt; — &lt;span id=&quot;unchor_text&quot;&gt;&lt;a href=&quot;http://e-flack.com/legal-framework-internet&quot;&gt;авторское право в Интернете&lt;/a&gt; это не шутки.&lt;/span&gt; Тексты это вообще отдельная тема. Для каждой категории сайта моим другом был написан уникальный текст размером &lt;b&gt;2-3 тысячи символов&lt;/b&gt;. Каждая из страниц категорий была заточена &lt;b&gt;под 1-2 конкретных среднечастотных поисковых запроса&lt;/b&gt;. Эти запросы в прямом и перефразированном виде упоминались в тексте страницы, в alt картинок, в названии и заголовках на старнице. Так же множество внутренних страниц стало ссылаться на оптимизируемые страницы категорий и на главную сайта (это и называется перелинковкой).&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На каждую из оптимизируемых страниц я &lt;b&gt;купил несколько ссылок&lt;/b&gt; в sape &lt;b&gt;с тематических сайтов с ненулевым тиц&lt;/b&gt;. Старался покупать &lt;b&gt;ссылки с главных страниц&lt;/b&gt;. Так же старался покупать ссылки с сайтов, которые находились &lt;b&gt;высоко в топе по оптимизируемым запросам&lt;/b&gt;. Позднее ссылки я стал закупать в seopult.ru, сейчас на ссылки я трачу порядка 5 тысяч в месяц и отметил хороший рост позиций по нужным запросам.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я заказал для сайта так же &lt;b&gt;прогон по каталогам статей&lt;/b&gt;, что, надеюсь так же помогло. Для увеличения скорости индексации контента я создал &lt;b&gt;поток в твиттере&lt;/b&gt; и настроил автоматический постинг туда своих материалов с сайта. Роботы яндекса часто заходят на быстрообновляемые ресурсы наподобие твиттера, соответственно ссылки оттуда быстрее индексируются. Для раскрутки твиттер-аккаунта я использовал купленный мной &lt;b&gt;twidium&lt;/b&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для &lt;b&gt;продвижения сайта в яндексе&lt;/b&gt; и для привлечения новых посетителей я сделал виджет с новыми материалами и добился его добавления в каталог виджетов яндекса. Виджет сыграл важную роль в развитии сайта и сейчас приносит 2-3 тысячи человек в день.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Успех виджета сподвигнул меня к &lt;b&gt;созданию группы в контакте&lt;/b&gt; и к созданию &lt;b&gt;своего приложения&lt;/b&gt; для этой социальной сети. Контакт сейчас так же приносит небольшую долю посетителей.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я сообщал о своем сайте на многих форумах, практически все мои знакомые знают о нем, много людей было приглашено на него в различные этапы его существования.&lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;Что я планирую сделать:&lt;/b&gt;&lt;/u&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В планы дальнейшего развития сайта входит более продуманная оптимизация страниц, написание большого количества уникальных текстов для множества страниц. Создание нового движка для сайта (он уже находится в разработке), который позволит открыть блог для увеличения текстового контента. Сайт будет переверстан таким образом, чтобы текст размещался как можно ближе к изображениям, а количество внутренних ссылок было в пределах сотни на каждой странице.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-11-02-133</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-11-02-133</guid>
			<pubDate>Tue, 01 Nov 2011 20:48:26 GMT</pubDate>
		</item>
		<item>
			<title>Парсер условных выражений</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я позволил себе достаточно долго не писать в блог по той причине, что всё мое внимание было переключено на разработку остальных моих проектов, в числе коих statusno.net — сборник статусов для социальных сетей, da.am — многострадальный сборник анекдотов и oboi.ws — процветающий каталог обоев для рабочего стола.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; И если первые два сайта застряли в эмбриональной стадии, то коллекция обоев уже пересекала рубеж посещаемости в восемь тысяч человек в день и рубеж доходов в 60 тысяч рублей в месяц (К моему большому сожалению в данный момент доходы не превышают 20 тысяч, но это долгая история и я надеюсь что такое положение дел будет длиться не бесконечно).&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Напротив, коллекция обоев в моих глазах имеет такой потенциал, что я начал разработку под неё специализированной cms с довольно интересной архитектурой. Провожу время обложившись учебниками по php и всё такое прочее.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Этот пост я пишу по той причине, что хочу поделиться с вами одной из моих наработок - &lt;b&gt;парсером условных выражений&lt;/b&gt; аля ucoz. Система разбора условий, сделанная в ucoz, показалась мне удобной и я решил её перенять (это не значит что вся cms будет ucoz-подобной, это далеко не так). Моя реализация парсера представляет из себя класс на php, который позволяет разбирать несколько видов условий, а так же реализует хранение и замену условных кодов в текстах шаблонов....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я позволил себе достаточно долго не писать в блог по той причине, что всё мое внимание было переключено на разработку остальных моих проектов, в числе коих statusno.net — сборник статусов для социальных сетей, da.am — многострадальный сборник анекдотов и oboi.ws — процветающий каталог обоев для рабочего стола.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; И если первые два сайта застряли в эмбриональной стадии, то коллекция обоев уже пересекала рубеж посещаемости в восемь тысяч человек в день и рубеж доходов в 60 тысяч рублей в месяц (К моему большому сожалению в данный момент доходы не превышают 20 тысяч, но это долгая история и я надеюсь что такое положение дел будет длиться не бесконечно).&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Напротив, коллекция обоев в моих глазах имеет такой потенциал, что я начал разработку под неё специализированной cms с довольно интересной архитектурой. Провожу время обложившись учебниками по php и всё такое прочее.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Этот пост я пишу по той причине, что хочу поделиться с вами одной из моих наработок - &lt;b&gt;парсером условных выражений&lt;/b&gt; аля ucoz. Система разбора условий, сделанная в ucoz, показалась мне удобной и я решил её перенять (это не значит что вся cms будет ucoz-подобной, это далеко не так). Моя реализация парсера представляет из себя класс на php, который позволяет разбирать несколько видов условий, а так же реализует хранение и замену условных кодов в текстах шаблонов.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того чтобы использовать мой парсер на своих сайтах сначала создайте файл класса &lt;a href=&quot;http://webcodes.ru/publ/1-1-0-5401&quot;&gt;codes.class.php&lt;/a&gt;, затем подключите его в код вашей системы. Класс не требует создания своих экземпляров, так как все его методы статичны. Далее я опишу основные функции взаимодействия с парсером.&lt;br&gt;&lt;br&gt;&lt;u&gt;Подготовка к работе:&lt;/u&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Первое что нам необходимо сделать, это загрузить в память парсера все условные коды, которые должны быть доступны на обрабатываемой странице. Для добавления кодов в парсер используется триплет функций:&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::set(&apos;имя_кода&apos;,&apos;значение кода/переменная&apos;);&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Имя кода должно быть задано латинскими буквами или цифрами без пробелов. Знаки доллара необязательны хотя и допустимы. Любое заданное значение будет сохранено в верхнем регистре и обрамлено знаками доллара. К примеру &lt;b&gt;&apos;User_ID&apos;&lt;/b&gt; будет сохранено и соотвтетственно доступно в шаблоне как &lt;b&gt;$USER_ID$&lt;/b&gt;.&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::get(&apos;имя_кода&apos;);&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Служит для получения значения кода из памяти парсера. Значение кода обрабатывается так же, как описано выше.&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::remove(&apos;имя_кода&apos;);&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Удаление информаии о коде из памяти. Обратите внимание что все коды, загруженные в память парсера сохраняются между вызовами обработки шаблонов. Если вы хотите чтобы один код был доступен в одном шаблоне и недоступен в другом - не забудьте его удалить.&lt;br&gt;&lt;br&gt;&lt;u&gt;Получение информации&lt;/u&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Если у вас появиась необходимость выгрузить информацию о добавленных кодах из парсера, например для вывода списка доступных кодов на странице сайта, как это сделано в моей системе - воспользуйтесь функциями ниже:&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::get_codes();&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Эта функция пришлет массив НАЗВАНИЙ кодов без значений. Полезна для вывода в шаблоне информации о доступных кодах.&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::get_all();&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вернет одномерный массив кодов вида $ИМЯ_КОДА$=&amp;gt;ЗНАЧЕНИЕ. Бывает полезно и может использоваться для различных мелких причин.&lt;br&gt;&lt;br&gt;&lt;u&gt;Написание условий, подготовка шаблона&lt;/u&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мой парсер имеет существенное отличие от парсера ucoz - он не имеет защиты от дурака и призван лишь упростить работу с шаблонами. По этой причине в каждом условии доступна передача php кода в парсер, где он и будет исполнен. &lt;font color=&quot;#ff0000&quot;&gt;Не допускайте прямого использования условных выражений пользователями!&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Парсер умеет распознавать условия любого уровня вложенности, умеет выполнять только те условия, которые попадают в выполняемую область видимости, это помогает значительно экономить ресурсы сервера. Парсер выдаст ошибку специальную ошибку в том случае, если условный код в шаблоне не будет закрыт должным образом. Так же парсер умеет перехватывать ошибки парсинга в условиях на php, что поможет избежать падения сайта.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ниже приведены примеры условий, которые парсер умеет обрабатывать:&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;if{ условие }&amp;gt;&amp;nbsp; текст&amp;nbsp; &lt;endif&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Самое простое выражение. Если условие положительно и приводится к булевному true то будет показан текст. В качестве условия может быть передан условный код, например вот так:&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;if{ $CODE$==3 }&amp;gt;&amp;nbsp; текст&amp;nbsp; &lt;endif&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В скобках условия пишется php код в котором условные коды выступают в качестве переменных.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;if{ условие }&amp;gt;&amp;nbsp; текст &lt;else&amp;gt; текст2 &lt;endif&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ещё одно простое условие но уже с использованием модификатора ИЛИ. Если условие выполняется - выводится первый текст, иначе второй.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;if{ условие }&amp;gt;&amp;nbsp; текст &lt;/b&gt;&lt;b&gt;&lt;else&amp;gt; текст2 &lt;/b&gt;&lt;b&gt;&lt;else&amp;gt; текст3 &lt;/b&gt;&lt;b&gt;&lt;else&amp;gt; текст4 &lt;/b&gt;&lt;b&gt;&lt;else&amp;gt; текст5&lt;/b&gt;&lt;b&gt; &lt;endif&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Возможны сложные последовательности, например такая как выше. В этом случае будут выведены нечетные тексты.&lt;b&gt;&lt;br&gt;&lt;br&gt;&lt;if{ условие }&amp;gt; текст &lt;elseif{ условие2 }&amp;gt; текст2 &lt;endif&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В условии выше используется переход elseif который позволяет вывести второй текст только если первое условие отрицательно а второе положительно.&lt;b&gt; &lt;/b&gt;Подобные условия можно так же перемежать многократными else.&lt;b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;Итак, шаблон мы подготовили, теперь пора его обработать парсером.&lt;br&gt;&lt;br&gt;&lt;u&gt;Финальная обработка и вывод&lt;/u&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Перед тем как вывести нашу страницу в браузер, мы должны обработать её шаблон (в котором уже расставлены условия и прописаны коды) функцией обработки нашего парсера.&lt;br&gt;&lt;br&gt;&lt;b&gt;codes::tpl(&apos;&amp;nbsp;&amp;nbsp; html код шаблона страницы &amp;nbsp; &apos;);&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Эта функция вернет переданный ей код но уже польностью обработанный и с замененными условными кодами и выражениями.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Надеюсь парсер вам пригодится. Он неоднократно протестирован и не содержит ошибок в формировании обработанного шаблона. Так же неплохо прокомментирован.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-10-27-132</link>
			<category>сайтостроение, верстка и html</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-10-27-132</guid>
			<pubDate>Thu, 27 Oct 2011 15:44:14 GMT</pubDate>
		</item>
		<item>
			<title>Поиск по обоям</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Написал на досуге поиск по каталогу обоев на своем проекте. Вот ссылка на &lt;a href=&quot;http://oboi.ws/search/&quot;&gt;сабж поста&lt;/a&gt;. Поиск использует библиотеку &lt;b&gt;phpMorphy&lt;/b&gt; для приведения запросов к базовому виду, затем прогоняет запросы по, заранее подготовленной, индексной таблице и выдает обои, отсортированные по релевантности. Поиск производится по тегу, категории и названию. Описание я решил не брать, так как там может быть много не относящегося к изображению.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сюда пишу для того чтобы вы, уважаемые читатели, протестировали новинку и отписали свое мнение. Я знаю, что некоторые из вас просили сделать поиск некоторое время назад.</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Написал на досуге поиск по каталогу обоев на своем проекте. Вот ссылка на &lt;a href=&quot;http://oboi.ws/search/&quot;&gt;сабж поста&lt;/a&gt;. Поиск использует библиотеку &lt;b&gt;phpMorphy&lt;/b&gt; для приведения запросов к базовому виду, затем прогоняет запросы по, заранее подготовленной, индексной таблице и выдает обои, отсортированные по релевантности. Поиск производится по тегу, категории и названию. Описание я решил не брать, так как там может быть много не относящегося к изображению.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сюда пишу для того чтобы вы, уважаемые читатели, протестировали новинку и отписали свое мнение. Я знаю, что некоторые из вас просили сделать поиск некоторое время назад.</content:encoded>
			<link>https://studioad.ru/blog/2011-05-16-130</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-05-16-130</guid>
			<pubDate>Sun, 15 May 2011 23:18:01 GMT</pubDate>
		</item>
		<item>
			<title>Oboi.ws — Пост второй</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/55176229.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Эхх.. А ведь я и правда думал что смогу заставить себя написать хотя бы по одному посту в месяц. Печально. С момента написания предыдущего поста о моем проекте прошло почти ровно два месяца. Проект за это время сильно вырос и начал приносить кое какие деньги, хотя до полноценных финстрипов мне ещё очень далеко, да и не манимейкер я — рано мне лезть в эту кухню. ...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/55176229.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Эхх.. А ведь я и правда думал что смогу заставить себя написать хотя бы по одному посту в месяц. Печально. С момента написания предыдущего поста о моем проекте прошло почти ровно два месяца. Проект за это время сильно вырос и начал приносить кое какие деньги, хотя до полноценных финстрипов мне ещё очень далеко, да и не манимейкер я — рано мне лезть в эту кухню. $CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Но перейду к статистике. О росте &lt;a href=&quot;http://oboi.ws&quot;&gt;проекта&lt;/a&gt; можно судить по графику в шапке поста. К 5.05.11 (на данный момент) статистические данные следующие:
&lt;ul&gt;
&lt;li&gt;Посетителей в день: &lt;b&gt;~6500 и растет&lt;/b&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Просмотров страниц в день: &lt;b&gt;~63000 и растет&lt;/b&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Процент отказов: &lt;b&gt;48%&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Просмотров на посетителя: &lt;b&gt;~7&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Время на сайте в среднем: &lt;b&gt;6 минут&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Показатели меня откровенно радуют. Проект увеличивает свою посещаемость в два раза каждый месяц и я надеюсь что такая тенденция сохранится и в будущем. А если учесть что на сайте в данный момент крутиться несколько &lt;a href=&quot;http://oboi.ws/go-1/&quot;&gt;richmedia партнерок&lt;/a&gt;, то результаты превосходны. Просмотры страниц просели всего на 10% а процент отказов вырос на 3-6 единиц что гораздо лучше чем я ожидал.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Список продвигаемых словосочетаний и ключевых слов разросся до таких размеров, что приводить его тут нет смысла. Вы сами можете прочитать нужную вам информацию в открытой статистике проекта.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мой &lt;a href=&quot;http://www.yandex.ru/?add=47407&amp;amp;from=promocode&quot;&gt;виджет&lt;/a&gt;, о котором я писал в предыдущих постах, за эти два месяца успел выйти в лидеры яндекса и уютно расположился на первой странице каталога виджетов со средней суточной посещаемостью в 3000 хостов. В этом есть ваша заслуга, уважаемые читатели, так что огромное вам спасибо. В данный момент виджет является ценным подспорьем в развитии сайта.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сайт оказался настолько успешным что я решил не останавливаться на достигнутом и уже открыл ещё два обойных проекта. Один сайт с автомобильными обоями (http://auto.oboi.ws) и один сайт с ынухой (http://xxx.oboi.ws). На последний проект я возлагаю большие надежды (так как фапать у нас, &lt;span id=&quot;result_box&quot; class=&quot;short_text&quot; lang=&quot;fr&quot;&gt;&lt;span title=&quot;Нажмите, чтобы увидеть альтернативный перевод&quot; class=&quot;hps&quot;&gt;excusez-moi&lt;/span&gt;&lt;/span&gt;, все мастера) и не зря: за первый же день работы фап-проект (не без помощи oboi.ws) достиг посещаемости в 190 человек и получил 2500 просмотров страниц, что очень даже неплохо.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Что касается заработка, то сайт (пока только один - остальные 2 проекта ещё не созрели и не подключились) приносит 300 рублей каждый день, что лишний раз подчеркивает моё неумение конвертировать траффик.&lt;b&gt; Люди-манимейкеры, если вы можете, помогите советом!&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; А то вдруг я захочу себе &lt;a href=&quot;http://www.satellite-rent.ru/&quot;&gt;купить спутниковый телефон&lt;/a&gt; или вышку нефтяную, ан не на что.. Хотелось бы узнать ваше мнение по проекту, уважаемые читатели.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-05-05-129</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-05-05-129</guid>
			<pubDate>Wed, 04 May 2011 22:00:51 GMT</pubDate>
		</item>
		<item>
			<title>АП ТИЦ Яндекса</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Лёд тронулся, господа! Сегодня утром индекс цитирования начал свой танец. Обновление ещё идет и не отобразилось на всех проектах, хотя некоторые проекты уже окупили вложенные в них силы. Всем удачного тица сегодня!</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Лёд тронулся, господа! Сегодня утром индекс цитирования начал свой танец. Обновление ещё идет и не отобразилось на всех проектах, хотя некоторые проекты уже окупили вложенные в них силы. Всем удачного тица сегодня!</content:encoded>
			<link>https://studioad.ru/blog/2011-03-16-127</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-03-16-127</guid>
			<pubDate>Wed, 16 Mar 2011 08:31:33 GMT</pubDate>
		</item>
		<item>
			<title>Яндекс виджет</title>
			<description>&lt;div class=&quot;images&quot; style=&quot;padding: 10px;&quot;&gt;&lt;iframe src=&quot;http://oboi.ws/informer&quot; style=&quot;border: medium none; width: 100%; height: 147px; margin: 0px; padding: 0px;&quot; allowtransparency=&quot;true&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ура! Созданный мной виджет для &lt;a href=&quot;http://oboi.ws&quot; title=&quot;Обои для рабочего стола&quot;&gt;oboi.ws&lt;/a&gt; на яндексе премодерировали за один день вместо официальных &lt;b&gt;от 5 до 10&lt;/b&gt;! Теперь я рад предложить вам поставить этот виджет на свои яндекс-страницы простым кликом по кнопке ниже. Я очень прошу, чтобы как можно больше человек установило виджет, так как виджет сможет попасть в каталог виджетов яндекса только после того, как его аудитория расширится до 150 пользователей. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class=&quot;images&quot;&gt;&lt;a style=&quot;display: block; margin-top: 0.5em; border: medium none;&quot; target=&quot;_blank&quot; href=&quot;http://www.yandex.ru?add=47407&amp;amp;from=promocode&quot;&gt;&lt;img src=&quot;http://img.yandex.net/i/service/wdgt/yand-add-b.png&quot; alt=&quot;добавить на Яндекс&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/div&gt; &lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Виджет имеет несколько настроек...</description>
			<content:encoded>&lt;div class=&quot;images&quot; style=&quot;padding: 10px;&quot;&gt;&lt;iframe src=&quot;http://oboi.ws/informer&quot; style=&quot;border: medium none; width: 100%; height: 147px; margin: 0px; padding: 0px;&quot; allowtransparency=&quot;true&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ура! Созданный мной виджет для &lt;a href=&quot;http://oboi.ws&quot; title=&quot;Обои для рабочего стола&quot;&gt;oboi.ws&lt;/a&gt; на яндексе премодерировали за один день вместо официальных &lt;b&gt;от 5 до 10&lt;/b&gt;! Теперь я рад предложить вам поставить этот виджет на свои яндекс-страницы простым кликом по кнопке ниже. Я очень прошу, чтобы как можно больше человек установило виджет, так как виджет сможет попасть в каталог виджетов яндекса только после того, как его аудитория расширится до 150 пользователей. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class=&quot;images&quot;&gt;&lt;a style=&quot;display: block; margin-top: 0.5em; border: medium none;&quot; target=&quot;_blank&quot; href=&quot;http://www.yandex.ru?add=47407&amp;amp;from=promocode&quot;&gt;&lt;img src=&quot;http://img.yandex.net/i/service/wdgt/yand-add-b.png&quot; alt=&quot;добавить на Яндекс&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/div&gt; &lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Виджет имеет несколько настроек$CUT$ — скорость анимации, разрешенность или запрещенность &quot;клубничного&quot; контента (обязательное требование Яндекса) и выбор категории, из которой будут транслироваться обои. &lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Если вы вдруг захотите сделать мне огромное одолжение и поставить данный виджет на свой сайт — у вас не возникнет никаких проблем. Ширина виджет автоматически изменяется под размер блока, в котором виджет установлен, высота виджета фиксирована. Чтобы вставить виджет на свой сайт, просто используйте код ниже: &lt;br&gt; &lt;!--uzcode--&gt;&lt;/p&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; max-height: 200px; overflow: auto;&quot;&gt;&lt;!--uzc--&gt;&lt;iframe src=&quot;http://oboi.ws/informer&quot; style=&quot;border:medium none;width:100%;height:147px;margin:0px;padding:0px;&quot; allowtransparency=&quot;true&quot; frameborder=&quot;0&quot;&amp;gt;&lt;/iframe&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Огромное вам спасибо! А что вы думаете о этом виджете и о создании виджетов на яндексе для продвижения сайта?</content:encoded>
			<link>https://studioad.ru/blog/2011-03-08-125</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-03-08-125</guid>
			<pubDate>Mon, 07 Mar 2011 22:19:47 GMT</pubDate>
		</item>
		<item>
			<title>Oboi.ws — Пост первый</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79389483.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&lt;b&gt;Вместо поста нулевого..&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я давно хотел сделать массовый проект. В голову приходили идеи и видео-хостинга (слишком большой трафик), цитатника (совсем банально), социальной сети с уникальной идеей (в процессе разработки), но идеи были отвергнуты или сложны настолько, что их воплощение должно было занять много человеко-часов. В итоге я решил остановится на сайте обоев для рабочего стола...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79389483.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&lt;b&gt;Вместо поста нулевого..&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я давно хотел сделать массовый проект. В голову приходили идеи и видео-хостинга (слишком большой трафик), цитатника (совсем банально), социальной сети с уникальной идеей (в процессе разработки), но идеи были отвергнуты или сложны настолько, что их воплощение должно было занять много человеко-часов. В итоге я решил остановится на сайте обоев для рабочего стола$CUT$. Этим сайтом стал &lt;a href=&quot;http://oboi.ws&quot;&gt;Oboi.ws&lt;/a&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Так как проект задумывался как проба сил, под хостинг я использовал свой старый компьютер, системные параметры которого вполне позволяли организовать на нем сервер.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Затем, собрав в кучу свой опыт работы с php, я смог написать с нуля неплохую, на мой взгляд, узконаправленную систему управления контентом, в данном случае изображениями. В системе постепенно стали появляться всякие популярные примочки, например поиск по тегам, качественный поиск по цветам (долго мучился с ним, а в итоге всё оказалось весьма просто), древовидные комментарии и так далее.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Постепенно сайт обрел форму и начал привлекать посетителей. Я перешел на стомегабитный интернет тариф, улучшил охлаждение сервера, провел софтверную оптимизацию — поставил nginx в качестве фронтенда, в общем неплохо всё оптимизировал. А затем я наткнулся (в который раз уже) на &lt;a href=&quot;http://nometa.ru&quot;&gt;блог Нометы&lt;/a&gt; и прочитал его &quot;быстрый старт&quot;. Это зажгло меня двумя идеями: заработком денег с сайта и написанием постов о истории его развития.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Что касается рекламного заработка, тут у меня мизерный опыт и я постараюсь связаться с Александром и попрошу его поделится своим опытом, так как я перечитал все посты по существу в его блоге и жажду больше.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; А вот о истории развития oboi.ws читайте дальше.&lt;br&gt;&lt;br&gt;&lt;b&gt;Пост первый&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Это первый пост о развитии проекта &lt;a href=&quot;http://oboi.ws&quot;&gt;oboi.ws&lt;/a&gt;. Сайт был создан и запущен&amp;nbsp; около 50 дней назад — &lt;b&gt;15.01.11&lt;/b&gt;. Проиндексирован почти сразу, но затем была допущена ошибка с 301 редиректом с домена www.oboi.ws на домен oboi.ws в следствии которой сайт полностью выпал из индекса яндекса на целую неделю. К &lt;b&gt;15.02.11&lt;/b&gt; была достигнута посещаемость в 558 человек в день. Это случилось бы раньше, если бы не описанные выше погрешности.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; К &lt;b&gt;6.03.11&lt;/b&gt; (на данный момент) статистические данные следующие:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Посетителей в день: ~1550 и растет&lt;br&gt;&lt;/li&gt;&lt;li&gt;Просмотров страниц в день: ~18000 и растет&lt;br&gt;&lt;/li&gt;&lt;li&gt;Процент отказов: 45%&lt;/li&gt;&lt;li&gt;Просмотров на посетителя: ~11&lt;/li&gt;&lt;li&gt;Время на сайте в среднем: 5 минут&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я считаю эти показатели неплохими. Я уделяю статистике такое внимание потому, что в блоге Александра мне сильно не хватало статистических данных подобного плана. &lt;a href=&quot;http://metrika.yandex.ru/stat/dashboard/?counter_id=3338578&quot;&gt;Подробная открытая статистика&lt;/a&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я выбрал несколько высокочастотных ключевых запросов для сайта, вот данные по ним:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;бесплатные обои&lt;/b&gt; — 42 строчка в яндекс. Для продвижения по ключевику выполнена внутренняя перелиновка сайта, настроены мета-теги, написаны копирайтерские тексты на главную и некоторые внутренние страницы, куплено около 10 ссылок в sape, в том числе с сайтов прямых конкурентов.&lt;/li&gt;&lt;li&gt;&lt;b&gt;обои для рабочего стола&lt;/b&gt; — 160 строчка в яндексе. Куплены 6-7 ссылок, перелиновка с нескольких страниц.&lt;/li&gt;&lt;li&gt;&lt;b&gt;обои 1280х1024&lt;/b&gt; — 14 строчка в яндексе и 23 строчка в гугле. Куплены ссылки, проведена перелинковка с большого количества страниц.&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В данный момент из рекламы на сайте стоит только ссылочный sape. Куплено 206 ссылок которые приносят 2.70р в день. Сайт нулевой, то есть &lt;b&gt;тиц 0 &lt;/b&gt;и&lt;b&gt; pr 0&lt;/b&gt; так как с нового года апа так и не было. Данные показатели (по sape) считаю не хорошими, но удовлетворительными. Продажа идет по схеме 2-2-2 и по цене на 10% превышающей среднюю по системе.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На сайте есть быстрое добавление в социальные закладки, которое уже было неоднократно использовано посетителями. Созданы около 1000 автоматических rss потоков, главный &lt;a href=&quot;http://feeds.feedburner.com/oboiws&quot;&gt;общий рсс поток&lt;/a&gt; добавлен в feedburner. Создана система информеров, о них был написан &lt;a href=&quot;http://studioad.ru/blog/2011-03-05-123&quot;&gt;предыдущий пост&lt;/a&gt;. У сайта есть свой &lt;a href=&quot;http://twitter.com/oboiws/&quot;&gt;канал на twitter&lt;/a&gt;, в который настроен автоматический постинг обновлений с rss с прямыми ссылками на материалы.&lt;br&gt;&lt;br&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Что вы думаете по поводу развития проекта? Будет ли вам интересна история его развития? Своё мнение вы можете оставить в комментариях к данному посту или в &lt;a href=&quot;http://oboi.ws/wallpaper-234/&quot;&gt;импровизированном чате&lt;/a&gt; (комментариях) на oboi.ws.&lt;/i&gt;&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-03-06-124</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-03-06-124</guid>
			<pubDate>Sat, 05 Mar 2011 21:45:57 GMT</pubDate>
		</item>
		<item>
			<title>Oboi.ws делится контентом!</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/38649510.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Возможно вы слышали о моем новом проекте &lt;a href=&quot;http://oboi.ws&quot; rel=&apos;nofollow&apos;&gt;oboi.ws&lt;/a&gt;. В любом случае мне уже давно нужно было написать о нем в блоге...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/38649510.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Возможно вы слышали о моем новом проекте &lt;a href=&quot;http://oboi.ws&quot; rel=&apos;nofollow&apos;&gt;oboi.ws&lt;/a&gt;. В любом случае мне уже давно нужно было написать о нем в блоге$CUT$. Дело в том что последний месяц я активно занимался этим проектом, настроил свой сервер, написал движок с нуля, сделал дизайн, залил более двух тысяч изображений, которые благодаря скриптам сайта превратились в более чем 35000 готовых обоев для экранов посетителей проекта, была выполнена грамотная &lt;span id=&quot;unchor_text&quot;&gt;&lt;a href=&quot;http://seopera.ru/&quot;&gt;внутренняя перелинковка под нч&lt;/a&gt;, да много всего&lt;/span&gt;. Благодаря стараниям меня и моих друзей сайт стал активно набирать популярность и на данный момент набрал посещаемость в полторы тысячи человек в сутки и этот показатель продолжает расти. Говорить о этой разработке я могу довольно долго, но пост не об этом.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я пишу пост чтобы сообщить о возможности получить контент моего сайта бесплатно для всех желающих, особенно владельцев сайтов на uCoz. Дело в том что каждая категория, размер и тег на сайте oboi.ws отныне транслирует не только свой rss поток, но и предоставляет свой контент в уже сформированном удобоваримом виде для размещения на ваших страницах! Простой пример, два последних изображения в категории &quot;природа&quot;:&lt;div class=&quot;images&quot;&gt;&lt;style&gt;
.wallpaper-wrapper,.wallpaper-wrapper div{display:inline;}
.wallpaper-wrapper {padding:5px;}
&lt;/style&gt;
&lt;script src=&quot;http://oboi.ws/informer/category-16.js?items=2&amp;print=1&quot;&gt;&lt;/script&gt;
&lt;/div&gt;&lt;br&gt; Код этого блока выглядит так: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; max-height: 200px; overflow: auto;&quot;&gt;&lt;!--uzc--&gt;&lt;style&amp;gt; &lt;br&gt; .wallpaper-wrapper,.wallpaper-wrapper div{display:inline;} &lt;br&gt; .wallpaper-wrapper {padding:5px;} &lt;br&gt; &lt;/style&amp;gt; &lt;br&gt; &lt;script src=&quot;http://oboi.ws/informer/category-16.js?items=2&amp;amp;print=1&quot;&amp;gt;&lt;/script&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Как видите мы получаем контент с помощью скрипта. Скрипт формируется на сервере автоматом и сразу кэшируется, так что всё грузится быстро. Кэш обновляется каждый раз при обновлении категории, тега или размера — в вашем информере всегда будет свежая информация. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Но что делать если вы хотите, чтобы присланная информация индексировалась поисковиками? Ведь скрипты не индексируются... Нет проблем! Просто уберите расширение из ссылки на информер и сервер пришлет сформированную html страницу, которую вы можете импортировать в админпанели uCoz сайта или с помощью функций получения удаленного контента на своем сервере. Сравните результат: &lt;br&gt; &lt;br&gt;&lt;a class=&quot;link&quot; href=&quot;http://oboi.ws/informer/category-16.js?items=2&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://oboi.ws/informer/category-16.js?items=2&lt;/a&gt; — js &lt;br&gt; &lt;a class=&quot;link&quot; href=&quot;http://oboi.ws/informer/category-16?items=2&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://oboi.ws/informer/category-16?items=2&lt;/a&gt; — html &lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Параметр items указывает, сколько изображений необходимо прислать, и может варьироваться от 1 (в таком случае его можно просто не писать) до 50. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я постарался качественно проработать присылаемый код. Я присылаю очередь div-блоков, а не таблицу, что позволит вам разбить изображения в любом удобном порядке и на любое количество столбцов и строк. Вот так выглядит код одного изображения: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; max-height: 200px; overflow: auto;&quot;&gt;&lt;!--uzc--&gt;&lt;div class=&quot;wallpaper-wrapper&quot; id=&quot;wallpaper-wrap-1&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;wallpaper-title&quot; id=&quot;wallpaper-title-1&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://oboi.ws/wallpaper-2335/&quot; title=&quot;Создано 3 2011 в 23:47&quot;&amp;gt;Цветы среди камней&lt;/a&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;wallpaper-preview&quot; id=&quot;wallpaper-preview-1&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://oboi.ws/wallpaper-2335/&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;http://oboi.ws/wallpapers/min_2335.jpg&quot; alt=&quot;скачать обои Цветы среди камней&quot; title=&quot;Цветы среди камней&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/a&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/div&amp;gt; &lt;br&gt; &lt;/div&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Обратите внимание: каждый блок имеет как общий класс, так и уникальный id, что упростит работу с изображениями.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я написал всё это чтобы услышать ваше мнение по поводу использования данных возможностей моего проекта. Если вы захотите реализовать подобный импорт тематических обоев на своем сайте - я с удовольствием помогу с настройкой. Все свои мысли предложения по проекту оставляйте здесь, или в комментариях &quot;&lt;a href=&quot;http://oboi.ws/wallpaper-234/#formcontent&quot;&gt;Под кудлатой пандой&lt;/a&gt;&quot;.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-03-05-123</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-03-05-123</guid>
			<pubDate>Sat, 05 Mar 2011 13:04:42 GMT</pubDate>
		</item>
		<item>
			<title>R.A.T 7</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/57629050.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Купил навороченную мышку &lt;a href=&quot;http://cyborggaming.com/prod/rat7.htm&quot;&gt;cyborg r.a.t 7&lt;/a&gt; (смотрите видео) которую давно хотел и ждал на ozon.ru с середины января. Мышь - превосходная, доволен как слон)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;UPD&lt;/b&gt; Выкладываю несколько лично-сделанных фотографий мыши...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/57629050.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Купил навороченную мышку &lt;a href=&quot;http://cyborggaming.com/prod/rat7.htm&quot;&gt;cyborg r.a.t 7&lt;/a&gt; (смотрите видео) которую давно хотел и ждал на ozon.ru с середины января. Мышь - превосходная, доволен как слон)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;UPD&lt;/b&gt; Выкладываю несколько лично-сделанных фотографий мыши$CUT$. Прошу простить за достаточно низкое качество изображений - фоткал не с зеркалки а с обычной мыльницы.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Общий вид на столе. Выглядит сурово и стильно.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/86972079.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Обратная сторона мыши - сенсор, металлическая основа, отсек для дополнительных грузиков:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG5--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/15974796.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG5--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мышка справа. Правая сменная панель, справа у кнопок светится индикатор режима. У него 3 цвета - красный, синий и розовый.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/07322309.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мышка слева. Левая поворотная панель с подкладкой под большой палец, красная кнопка прицеливания, кнопки вперед и назад, красным светится индикатор точности мыши (в данный момент режим №2 - 1700dpi), настраиваемый скролл для большого пальца.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/59789583.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;&lt;p&gt;Вообще считаю что компьютерная мышка должна быть как хорошие &lt;a href=&apos;http://www.planetaobuvi.ru/ishop/37&apos;&gt;ботинки&lt;/a&gt;, не натирать, быть легкой, красивой и служить долго. А что думаете вы?&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2011-03-02-122</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2011-03-02-122</guid>
			<pubDate>Wed, 02 Mar 2011 20:11:40 GMT</pubDate>
		</item>
		<item>
			<title>Отключаем смс подтверждения Web Money</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/55643137.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Эта небольшая заметка для тех, кого, как и меня, вывела из равновесия новая система безопасности платежей в системе Web Money, которая требует при совершении практически любой операции вводить проверочный код, присылаемый на мобильный телефон.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; У кого то может отсутствовать gsm связь в принципе, у кого то телефон давным давно потерялся, да и в конце концов это элементарно неудобно.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того чтобы отключить &lt;b&gt;смс подтверждения&lt;/b&gt; платежей, откройте страницу &lt;a href=&quot;https://studioad.ru/go?https://security.webmoney.ru/asp/transconfirm.asp&quot; title=&quot;https://security.webmoney.ru/asp/transconfirm.asp&quot;&gt;https://security.webmoney.ru/asp/transconfirm.asp&lt;/a&gt; , и пройдите авторизацию в своем Web Money Keeper. У вас откроется страница изменения настроек безопасности где вы сможете отключить обязательные смс подтверждения. Подробнее о способах отключения смс подтверждений вы можете прочесть на страничке Web Money Wiki по следующей &lt;a href=&quot;https://studioad.ru/go?http://wiki.webmoney.ru/wiki/show/Podtverzhdenie_operatsiy_v_WM_Keeper&quot; title=&quot;http://wiki.webmoney.ru/wiki/show/Podtverzhdenie_operatsiy_v_WM_Keeper&quot;&gt;ссылке&lt;/a&gt;. Надеюсь, я помог.&lt;p&gt;Кстати была ещё такая проблема как обмен денег между яндекс-деньгами и webmoney в виду разногласий (как мне кажется) владельцев систем на базе их популярности...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/55643137.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Эта небольшая заметка для тех, кого, как и меня, вывела из равновесия новая система безопасности платежей в системе Web Money, которая требует при совершении практически любой операции вводить проверочный код, присылаемый на мобильный телефон.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; У кого то может отсутствовать gsm связь в принципе, у кого то телефон давным давно потерялся, да и в конце концов это элементарно неудобно.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того чтобы отключить &lt;b&gt;смс подтверждения&lt;/b&gt; платежей, откройте страницу &lt;a href=&quot;https://studioad.ru/go?https://security.webmoney.ru/asp/transconfirm.asp&quot; title=&quot;https://security.webmoney.ru/asp/transconfirm.asp&quot;&gt;https://security.webmoney.ru/asp/transconfirm.asp&lt;/a&gt; , и пройдите авторизацию в своем Web Money Keeper. У вас откроется страница изменения настроек безопасности где вы сможете отключить обязательные смс подтверждения. Подробнее о способах отключения смс подтверждений вы можете прочесть на страничке Web Money Wiki по следующей &lt;a href=&quot;https://studioad.ru/go?http://wiki.webmoney.ru/wiki/show/Podtverzhdenie_operatsiy_v_WM_Keeper&quot; title=&quot;http://wiki.webmoney.ru/wiki/show/Podtverzhdenie_operatsiy_v_WM_Keeper&quot;&gt;ссылке&lt;/a&gt;. Надеюсь, я помог.&lt;p&gt;Кстати была ещё такая проблема как обмен денег между яндекс-деньгами и webmoney в виду разногласий (как мне кажется) владельцев систем на базе их популярности. Зато электронные webmoney легко можно поменять на яндекс-деньги через любую стороннюю систему, напаример сначала перевести webmoney в телебанк, а затем вывести всё через &lt;a href=&quot;http://www.bestchange.ru/telebank-to-yandex-money.html&quot;&gt;обменник телебанк на ЯД&lt;/a&gt;. Вот такой вот выход из неприятной ситуации, правда, к сожалению комиссии не избежать.&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-11-18-121</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-11-18-121</guid>
			<pubDate>Thu, 18 Nov 2010 17:40:15 GMT</pubDate>
		</item>
		<item>
			<title>Гибридный лейкоз Леры Макаренко</title>
			<description>Какого черта я должен видеть это на админ-баре?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сабж.</description>
			<content:encoded>Какого черта я должен видеть это на админ-баре?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сабж.</content:encoded>
			<link>https://studioad.ru/blog/2010-11-10-120</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-11-10-120</guid>
			<pubDate>Tue, 09 Nov 2010 22:10:12 GMT</pubDate>
		</item>
		<item>
			<title>Рисуем iPhone</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/16700174.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Тема рисования &lt;b&gt;iPhone&lt;/b&gt; в &lt;b&gt;Adobe Photoshop&lt;/b&gt; достаточно стара и много где упоминалась, но, идя на поводу у пользователей моего форума, я выложу свой собственный урок.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Урок рассчитан на &quot;самых маленьких&quot;, так как включает описание только базовых техник работы с градиентами и стилями слоя. Тем не менее в конце мы получим достаточно качественное изображение яблочного телефона. Такое его изображение обычно участвует в различного рода рекламе. Чтобы не томить любознательных, начну урок с конца...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/16700174.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Тема рисования &lt;b&gt;iPhone&lt;/b&gt; в &lt;b&gt;Adobe Photoshop&lt;/b&gt; достаточно стара и много где упоминалась, но, идя на поводу у пользователей моего форума, я выложу свой собственный урок.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Урок рассчитан на &quot;самых маленьких&quot;, так как включает описание только базовых техник работы с градиентами и стилями слоя. Тем не менее в конце мы получим достаточно качественное изображение яблочного телефона. Такое его изображение обычно участвует в различного рода рекламе. Чтобы не томить любознательных, начну урок с конца$CUT$. Вот финальное изображение &lt;b&gt;iPhone&lt;/b&gt; (&lt;a href=&quot;http://studioad.ru/tutorials/iphone/iphone_tutorial.psd&quot;&gt;Скачать PSD&lt;/a&gt;):&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/29150467.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для начала создадим новый документ в Photoshop. Так как работа в последствие может понадобится в качестве клипарта, я выбрал относительно большой размер документа - 1300 пикселей по ширине и 2300 по высоте. Хочу сразу предупредить, что если ваш металлопластиковый друг слабоват по части вычислений, то вам стоит взять размер документа поменьше - иначе есть риск зависаний и тормозов во время работы с изображением.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Начнем с того что на новом слое (создать новый слой можно клавиатурным сочетанием &lt;b&gt;Shift+Ctrl+N&lt;/b&gt; или щелчком по иконке создания слоя на панели слоев) с помощью инструмента &lt;img rel=&quot;usm&quot; src=&quot;http://studioad.ru/ps/rounded_rectangle.gif&quot; alt=&quot;rounded_rectangle&quot; align=&quot;absmiddle&quot; border=&quot;0&quot;&gt; нарисуем&amp;nbsp; прямоугольник с закругленными углами. Радиус угла зависит от размера документа который вы создали. Здесь и далее я буду указывать подобные размеры относительно документа размером 1300х2300 пикселей, с которым я работал на протяжении урока. Так вот, радиус угла я взял равным 200px. Цвет фигуры - черный (&lt;b&gt;#000000&lt;/b&gt;). Вот что вы должны получить:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/52559040.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее мы дублируем только что созданную фигуру на новый слой. Затем нажимаем сочетание клавиш &lt;b&gt;Ctrl+I&lt;/b&gt; для того чтобы инвертировать цвета. Наша фигура из черной становится белой. Затем мы установим ширину фигуры на &lt;b&gt;97,3%&lt;/b&gt;. Для того чтобы точно выставить это значение, активируйте слой с фигурой на панели слоев, затем нажмите &lt;b&gt;Ctrl+T&lt;/b&gt; и сверху в поле &lt;b&gt;width&lt;/b&gt; введите 97,3%. Обратите внимание что разделителем служит именно запятая а не точка! &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Затем примените к фигуре стиль слоя &lt;b&gt;Inner Shadow&lt;/b&gt; с настроками со скриншота ниже. Чтобы открыть настройки стиля слоя кликните правой кнопкой мыши по слою на панели слоев и в выпадающем списке выберите &lt;b&gt;Blending Options...&lt;/b&gt; .&lt;div class=&quot;images&quot;&gt;&lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79766477.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В итоге мы должны получить следующее:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG5--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/53813462.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG5--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее мы снова дублируем первый слой с черной фигурой и перемещаем его на самый верх. Затем аналогичным образом меняем его высоту на &lt;b&gt;98%&lt;/b&gt; ровно. Слой оставляем черным. Мы получим такое сочетание:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG6--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/81381157.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG6--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь&amp;nbsp; дублируем этот слой (тот с которым мы только что работали), затем выполняем Ctrl+клик левой кнопкой мыши по иконке получившегося слоя дубликата чтобы создать выделение. Затем выполняем &lt;b&gt;Selection &amp;gt; Modify &amp;gt; Contract&lt;/b&gt; и задаем &lt;b&gt;2px&lt;/b&gt;. Не снимая выделения нажимаем &lt;b&gt;Shift+Ctrl+I&lt;/b&gt; и затем &lt;b&gt;Delete&lt;/b&gt;. Далее для инвертирования цветов фигуры нажимаем &lt;b&gt;Ctrl+I&lt;/b&gt;. Вот что должно получится:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG7--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/11400466.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG7--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; К получившемуся слою применяем стили &lt;b&gt;Inner Shadow&lt;/b&gt;:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG8--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/93502851.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG8--&gt;&lt;/div&gt;и &lt;b&gt;Gradient Overlay&lt;/b&gt; (сам градиент показан на втором скриншоте ниже):&lt;div class=&quot;images&quot;&gt;&lt;!--IMG9--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/55826005.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG9--&gt;&lt;/div&gt;&lt;div class=&quot;images&quot;&gt;&lt;!--IMG10--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/71710557.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG10--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мы должны получить такой результат:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG11--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/38327870.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG11--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Дублируем последний слой, с которым мы работали. Щелкаем правой кнопкой мыши по созданному слою на панели слоев и из выпавшего списка выбираем &lt;b&gt;Clear layer style&lt;/b&gt;, чтобы отменить все примененные стили. Затем нажимаем &lt;b&gt;Ctrl+I &lt;/b&gt;чтобы цвет фигуры на слое стал черным. Далее устанавливаем ширину фигуры на &lt;b&gt;97%&lt;/b&gt;. Затем дублируем получившийся слой ещё раз, делаем &lt;b&gt;Ctrl+клик&lt;/b&gt; по иконке слоя на панели слоев (создаем выделение), затем выполняем &lt;b&gt;Selection&amp;gt;Modify&amp;gt;Contract&lt;/b&gt; с параметром 2px, далее нажимаем сочетание клавиш &lt;b&gt;Shift+Ctrl+I&lt;/b&gt; чтобы инвертировать выделение, затем нажимаем &lt;b&gt;delete&lt;/b&gt; и &lt;b&gt;Ctrl+I&lt;/b&gt;. После выполнения всех вышеперечисленных шагов мы должны получить вот такой результат:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG12--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/59420649.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG12--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее дублируем верхний слой с белой фигурой. Создаем выделение этого слоя (с помощью &lt;b&gt;Ctrl+клик&lt;/b&gt; по его иконке) выполняем &lt;b&gt;Select&amp;gt;Modify&amp;gt;Contract&lt;/b&gt; с параметром &lt;b&gt;13px&lt;/b&gt;, инвертируем выделение и жмем &lt;b&gt;delete&lt;/b&gt;. Затем применяем к слою стиль &lt;b&gt;Color overlay&lt;/b&gt; с цветом &lt;b&gt;#030909&lt;/b&gt;. Мы получим практически готовый корпус:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG13--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/69123113.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG13--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь нам необходимо сделать неяркое белое отражение по углам корпуса. Для этого мы дублируем самый первый слой с черной фигурой,переносим его на самый верх и ставим его параметр &lt;b&gt;fill&lt;/b&gt; на 0 (слой должен стать полностью прозрачным). Затем применяем к слою небольшое внутреннее свечение чистым белым цветом, параметры возьмите со скрина ниже:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG14--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/22821451.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG14--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После этих шагов у нас получится равномерное свечение со всех краев, но нам необходимо чтобы свечение проявлялось исключительно по углам. Для этого в самом верху списка слоев создаем новую группу (щелкните по иконке папки на панели слоев внизу), затем переместите в папку слой с свечением, который мы только что сделали. Далее нужно создать маску слоя для папки. Выбираем папку, щелкнув по ней на панели слоев, затем нажимаем кнопку Add layer mask на панели слоев (она имеет вид кружка в квадрате). После щелчка по этой кнопке у нас рядом с изображением папки должен появится вот такой эскиз:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG15--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/78324373.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG15--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Щелкаем по этому эскизу, затем открываем вкладку &lt;b&gt;Channels&lt;/b&gt; (Window&amp;gt;Channels) и делаем видимым канал с нашей маской (он единственный не будет иметь иконки глаза рядом с собой). Далее берем мягкую кисть диаметром 200 пикселей и закрашиваем показанные на скриншоте участки (должен быть активирован слой с маской! Если вы всё делаете правильно то независимо от выбранного вами цвета, цвет кисти будет красным):&lt;div class=&quot;images&quot;&gt;&lt;!--IMG16--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/18584338.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG16--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После этого снова сделайте маску невидимой, убрав на панели каналов икноку глаза рядом с каналом маски. После произведенных вами действий мы должны получить отражение на каждом углу, так как показано ниже:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG17--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/07758528.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG17--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На этом мы закончили работу с корпусом телефона. Пора заняться бликами. Бликов у телефона два, один в правом верхнем углу, яркий и с четкой границей, второй, чуть заметный но важный, в левом нижнем углу. Для того чтобы сделать эти блики дублируем слой с черной фигурой который был перед слоем с угловыми бликами и переносим дубликат на самый верх. Затем ужимаем слой на 11px с помощью выделения и команды 
Modify&amp;gt;Contract. Теперь дублируем получившийся слой и делаем дубликат невидимым - он пригодится для второго блика. Далее применяем к первому дубликату Color overlay с цветом &lt;b&gt;#142125&lt;/b&gt;.&amp;nbsp; Здесь и далее я не буду снова подробно расписывать как это делается, так как неоднократно писал об этом ранее. Теперь берем резинку шириной в 400px с мягкими краями и аккуратно стираем лишнее, чтобы получить вот такой блик:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG18--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/49473556.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG18--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вернемся ко второму дубликату. Делаем его видимым. Далее создаем с помощью инструмента&amp;nbsp; :polygonal_lasso: скошенное выделение и удаляем ненужную часть слоя. Затем немного стираем нижний угол мягкой резинкой. На скрине ниже показано то, что должно остаться. Цвет слоя я переключил на красный чтобы было лучше видно, у вас он по прежнему будет черным:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG19--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/30391412.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG19--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Затем применяем к слою стиль Gradient overlay и сдвигаем мышкой центр градиента в верхний правый угол корпуса. Делать это нужно при открытом окне настроек стиля. Настройки градиента указаны ниже:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG20--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/38795852.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG20--&gt;&lt;/div&gt;&lt;div class=&quot;images&quot;&gt;&lt;img src=&quot;http://studioad.ru/tutorials/iphone/20.jpg&quot;&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Если пока вы всё делали правильно то у вас получится вот такая вот заготовка нашего телефона:&lt;div class=&quot;images&quot;&gt;&lt;img src=&quot;http://studioad.ru/tutorials/iphone/21.jpg&quot;&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Пришла пора рисовать центральную кнопку. Создайте новый слой и нарисуйте обсалютно черный круг диаметром около 177-180 пикселей. Напоминаю, что размеры я указываю относительно размеров холста, на примере которого и повествую. Далее создайте ещё один слой и цветом #878b8f нарисуйте прямоугольник со сглаженными краями, как показано ниже. Как рисовать прямоугольник, я рассказывать не буду, так как это не сложно и у всех найдутся свои собственные способы. Вот что мы должны получить:&lt;div class=&quot;images&quot;&gt;&lt;img src=&quot;http://studioad.ru/tutorials/iphone/22.jpg&quot;&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее необходимо нарисовать блик. Внешний вид блика будет играть заметную роль в общем виде телефона и чем приятнее он получится - тем лучше. Ниже на скриншоте показаны формы нужной фигуры и цвета градиента. Обратите внимание на красную направляющую линию - она показывает что градиент не линейный а радиальный!&lt;div class=&quot;images&quot;&gt;&lt;img src=&quot;http://studioad.ru/tutorials/iphone/23.jpg&quot;&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Таким же образом собираем динамик. В его рисовании нет ничего сложного, мы просто постепенно собираем его из нескольких слоев, назначая им нужные стили. Единственный спорный момент - сетка. Её я получил путем рисования обычной белой шахматки на черном фоне и последующем размытии и уменьшении получившегося:
&lt;div class=&quot;images&quot;&gt;&lt;img src=&quot;http://studioad.ru/tutorials/iphone/24.jpg&quot;&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В принципе можно смело считать что это всё =). Осталось дорисовать мелочи типа кнопок по бокам аппарата (они являются фигурками с одним серо-белым градиентом так что описывать процесс их создания я смысла не вижу),картинки экрана и ободка вокруг неё, который по сути представляет из себя просто цветовой оверлей. &lt;br&gt;&lt;br&gt;В любом случае, если что либо ускользает от вас - воспользуйтесь &lt;a href=&quot;http://studioad.ru/tutorials/iphone/iphone_tutorial.psd&quot; title=&quot;~ 15 мегабайт&quot;&gt;исходником урока в формате PSD&lt;/a&gt;.

&lt;br&gt;&lt;br&gt;Успешного рисования!

&lt;br&gt;&lt;br&gt;Автор &lt;a href=&quot;http://studioad.ru&quot;&gt;Aleko&lt;/a&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-10-12-119</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-10-12-119</guid>
			<pubDate>Mon, 11 Oct 2010 20:47:45 GMT</pubDate>
		</item>
		<item>
			<title>плохое настроение и хорошая музыка</title>
			<description>&lt;div&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; height=&quot;56&quot; width=&quot;490&quot;&gt;
 &lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot;&gt;
 &lt;param name=&quot;movie&quot; value=&quot;http://studioad.ru/mp3/player.swf&quot;&gt;
 &lt;param name=&quot;quality&quot; value=&quot;high&quot;&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#eff7fa&quot;&gt;
 &lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt;
 &lt;param name=&quot;allowFullScreen&quot; value=&quot;false&quot;&gt;
 &lt;param name=&quot;scale&quot; value=&quot;noscale&quot;&gt;
 &lt;param name=&quot;flashvars&quot; value=&quot;sourcemusic=http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot;&gt;
 &lt;embed bgcolor=&quot;#eff7fa&quot; scale=&quot;noscale&quot; src=&quot;http://studioad.ru/mp3/player.swf&quot; flashvars=&quot;sourcemusic=http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot; allowfullscreen=&quot;false&quot; quality=&quot;high&quot; wmode=&quot;opaque&quot; allowscriptaccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;https://www.macromedia.com/go/getflashplayer&quot; height=&quot;56&quot; width=&quot;490&quot;&gt;
&lt;/object&gt;&lt;/div&gt;

&lt;p&gt;С трудом расковырял и подправил на свой лад флеш плеер (сделал внешний вид более подходящим для моего блога по цветовой гамме), благодаря чему могу поделиться с вами частичкой моей надежды на хорошее настроение. Трек называется &lt;a href=&quot;http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot;&gt;Often a bird&lt;/a&gt;. Мне кажется что это одна из самых замечательных композиций. Очень мелодичная и в то же время захватывающая дух. Всегда стараюсь искать именно такие мелодии, что к сожалению удается далеко не часто.&lt;/p&gt;

&lt;p&gt;Воо...</description>
			<content:encoded>&lt;div&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; height=&quot;56&quot; width=&quot;490&quot;&gt;
 &lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot;&gt;
 &lt;param name=&quot;movie&quot; value=&quot;http://studioad.ru/mp3/player.swf&quot;&gt;
 &lt;param name=&quot;quality&quot; value=&quot;high&quot;&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#eff7fa&quot;&gt;
 &lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt;
 &lt;param name=&quot;allowFullScreen&quot; value=&quot;false&quot;&gt;
 &lt;param name=&quot;scale&quot; value=&quot;noscale&quot;&gt;
 &lt;param name=&quot;flashvars&quot; value=&quot;sourcemusic=http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot;&gt;
 &lt;embed bgcolor=&quot;#eff7fa&quot; scale=&quot;noscale&quot; src=&quot;http://studioad.ru/mp3/player.swf&quot; flashvars=&quot;sourcemusic=http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot; allowfullscreen=&quot;false&quot; quality=&quot;high&quot; wmode=&quot;opaque&quot; allowscriptaccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;https://www.macromedia.com/go/getflashplayer&quot; height=&quot;56&quot; width=&quot;490&quot;&gt;
&lt;/object&gt;&lt;/div&gt;

&lt;p&gt;С трудом расковырял и подправил на свой лад флеш плеер (сделал внешний вид более подходящим для моего блога по цветовой гамме), благодаря чему могу поделиться с вами частичкой моей надежды на хорошее настроение. Трек называется &lt;a href=&quot;http://studioad.ru/mp3/Wim_Mertens-Often_A_Bird.mp3&quot;&gt;Often a bird&lt;/a&gt;. Мне кажется что это одна из самых замечательных композиций. Очень мелодичная и в то же время захватывающая дух. Всегда стараюсь искать именно такие мелодии, что к сожалению удается далеко не часто.&lt;/p&gt;

&lt;p&gt;Вообще совсем недавно открыл для себя социальную сеть вконтакте в качестве огромного музыкального архива с возможностью скачивать любую музыку для личного прослушивания в любых количествах. Всегда негативно относился к социальным сетям вообще и к этой соцсети в частности, но не могу не признать её годность для музыкального пиратства =). Разнообразных программ для скачивания музыки из вконтакте море, для установки на компьютер загрузить их можно на разных сайтах, а можно использовать обычные скрипты в адресной строке или специализированнные сервисы, коих тоже довольно много, в общем удобно. Конкретно я использую кратенькую закладку с небольшим скриптом.&lt;/p&gt;

&lt;p&gt;А откуда вы берете свою любимую музыку, покупаете, скачиваете, слушаете ли в сети или предварительно скачав? И какую музыку вы предпочитаете слушать, расскажите пожалуйста о своих мнениях в комментариях к данному посту. Спасибо за внимание.&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-09-09-118</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-09-09-118</guid>
			<pubDate>Thu, 09 Sep 2010 19:53:14 GMT</pubDate>
		</item>
		<item>
			<title>Быть как я</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/81404540.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Нет, я не заразился звездной болезнью, просто у меня, как говориться, накипело. Сегодня мне написал очередной индивид с вопросом &quot;Как стать как ты?&quot; и это стало последней каплей...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/81404540.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Нет, я не заразился звездной болезнью, просто у меня, как говориться, накипело. Сегодня мне написал очередной индивид с вопросом &quot;Как стать как ты?&quot; и это стало последней каплей$CUT$.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Я уже давно хотел написать этот пост так как подобных вопрошающих было и, что странно, остается много. Я не отличаюсь от остального интернет-сообщества ни знаниями, ни какими-либо, заслуживающими внимания, навыками, и тем не менее мне постоянно задают вопросы, как я научился тому или этому, как это у меня всё вообще получается и так далее.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Вопрошающие!&lt;/b&gt; Я обращаюсь к вам! Не нужно спрашивать меня, как я научился писать на js, как я выучил html или css! Я &lt;u&gt;не&lt;/u&gt; научился и &lt;u&gt;не&lt;/u&gt; выучил, я учусь. Постоянно и каждый день. А вы тратите своё время на вопросы. Вместо того чтобы кем-то восхищаться, просто начните делать что-то сами, это не сложно. Всё что вам нужно - находится у вас перед глазами. Качайте или покупайте учебники, читайте статьи, фильтруйте выдачу гугла. Не учите ради знаний, учите для решения конкретных задач. И не нужно обижаться на меня, если на очередной ваш вопрос &quot;Как?&quot;, который вы задаете мне, а не поисковику, я отвечу своё любимое &quot;Валшепством!&quot;.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;/h1&gt;&lt;br&gt;&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Qi2kaDzGh9A?fs=1&amp;amp;hl=ru_RU&amp;amp;rel=0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/Qi2kaDzGh9A?fs=1&amp;amp;hl=ru_RU&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-08-31-117</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-08-31-117</guid>
			<pubDate>Tue, 31 Aug 2010 12:13:16 GMT</pubDate>
		</item>
		<item>
			<title>Рисуем иконку солнца</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/49271997.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня попросили нарисовать &lt;a class=&quot;link&quot; href=&quot;https://studioad.ru/go?http://cdn.iconfinder.net/data/icons/iconsland-weather/PNG/128x128/Sunny.png&quot; title=&quot;http://cdn.iconfinder.net/data/icons/iconsland-weather/PNG/128x128/Sunny.png&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;вот такую&lt;/a&gt; иконку солнца из набора погодных иконок. Иконка простенькая так что вот собственно и урок.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В уроке я не буду расписывать шаги и давать скриншоты стилей как это обычно делают в фотошопных уроках. Вместо этого я опишу общий подход и несколько полезных моментов. Ведь все стили вы и сами можете посмотреть в исходном файле sun.psd (я специально создал его для урока), который можно свободно скачать по ссылке в конце этого поста....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/49271997.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня попросили нарисовать &lt;a class=&quot;link&quot; href=&quot;https://studioad.ru/go?http://cdn.iconfinder.net/data/icons/iconsland-weather/PNG/128x128/Sunny.png&quot; title=&quot;http://cdn.iconfinder.net/data/icons/iconsland-weather/PNG/128x128/Sunny.png&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;вот такую&lt;/a&gt; иконку солнца из набора погодных иконок. Иконка простенькая так что вот собственно и урок.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В уроке я не буду расписывать шаги и давать скриншоты стилей как это обычно делают в фотошопных уроках. Вместо этого я опишу общий подход и несколько полезных моментов. Ведь все стили вы и сами можете посмотреть в исходном файле sun.psd (я специально создал его для урока), который можно свободно скачать по ссылке в конце этого поста.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Иконка, которую мы будем учится рисовать, предельно проста. Для новичка в photoshop единственную сложность может создать создание (каламбур) сложной лучистой фигуры иконки. На самом деле 99% простых фигур можно получить путем небольшого модифицирования одной из стандартных фигур набора photoshop. Особенно учитывая то, что умение правильно и к месту использовать стандартные иструменты это &lt;a href=&quot;http://www.dverizdes.ru/&quot;&gt;входные двери&lt;/a&gt; на проффессиональный уровень овладевания программой. Вот и в этот раз я создал готовую фигуру Seal из стандартного набора. Обратите внимание что модифицировать фигуру проще всего в режиме путей. В фигуре Seal я с помощью инструмента &lt;img rel=&quot;usm&quot; src=&quot;http://studioad.ru/ps/direct_selection.gif&quot; alt=&quot;direct_selection&quot; align=&quot;absmiddle&quot; border=&quot;0&quot;&gt; выбрал точки через одну (зажав shift) и растянул в разные стороны с помощью free transform path. Затем я залил фигуру черным цветом, получив при этом именно то, что мне и нужно было для создания основы иконки. Посмотрите на скриншот ниже: &lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/94636901.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt; Это была бы самая сложная часть в рисовании иконки если бы не готовая фигура, которая сэкономила мне кучу времени.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Как мы и договорились я не буду говорить о том, какие стили необходимо назначит нашему первому слою - всё это вы сами в гораздо более удобной форме сможете усвоить из исходника, просто открыв blending options первого слоя в папке маленького солнца (в исходнике 2 заготовки: малнькое солнце размером с оригинал иконки и большое, размером примерно 400 на 400px). &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Следующим слоем у нас будет слой с самим солнцем. Это круг, который слегка выступает за начальные точки лучей. С этим слоем всё так же просто кроме одного но. Вы никогда не получите подобный градиент со смещенным центром, подкручивая настройки стиля. Для этого, не закрывая окно стилей, возьмите инструмент &lt;img rel=&quot;usm&quot; src=&quot;http://studioad.ru/ps/move.gif&quot; alt=&quot;move&quot; align=&quot;absmiddle&quot; border=&quot;0&quot;&gt; и подвиньте сам градиент на своем рисунке! Это весьма не очевидное свойство photoshop и именно поэтому я пишу о нем здесь. Смотрите скриншот:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/91721378.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее я просто добавлял различные блики, стараясь соответствовать оригиналу. Единственное, что тут стоит прояснить, это использование масок слоя. Что это такое - я не буду рассказывать - конкретно по использованию инструмента маски написано море уроков, кажется пара была даже на моем форуме. Вместо этого я объясню, почему я использовал именно маску а не стер лишние участки резинкой. Маска позволяет легко отменить сделанные изменения, а вот стертое уже не так просто вернуть назад.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После всех выполненных шагов мы получаем готовую иконку достаточно близкую к оригинальной:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/03512265.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt; &lt;br&gt; А вот исходник с результатом урока: &lt;a href=&quot;http://studioad.ru/_fr/0/sun.psd&quot; target=&quot;_blank&quot;&gt;sun.psd&lt;/a&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-06-03-116</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-06-03-116</guid>
			<pubDate>Wed, 02 Jun 2010 21:16:21 GMT</pubDate>
		</item>
		<item>
			<title>Смерть относительных адресов</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; По причине того что администрация ucoz снижает нагрузку на сервера, система перестала подставлять слэш в относительные адреса на сайтах. Из за этого могли появится множественные проблемы с отображением картинок, работой скриптов и так далее....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; По причине того что администрация ucoz снижает нагрузку на сервера, система перестала подставлять слэш в относительные адреса на сайтах. Из за этого могли появится множественные проблемы с отображением картинок, работой скриптов и так далее.$CUT$ Для того чтобы &lt;b&gt;исправить адреса&lt;/b&gt; на внутренние ресурсы необходимо &lt;b&gt;изменить адреса&lt;/b&gt; следующим образом:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; max-height: 200px; overflow: auto;&quot;&gt;&lt;!--uzc--&gt;&lt;!-- пример --&amp;gt; &lt;br&gt;&lt;br&gt; Если у вас было: &lt;img src=&apos;images/top.jpg&apos; /&amp;gt; &lt;br&gt;&lt;br&gt; То нужно вставить слэш: &lt;img src=&apos;/images/top.jpg&apos; /&amp;gt; &lt;br&gt;&lt;br&gt; Или прописать полный адрес: &lt;img src=&apos;http://site.ru/images/top.jpg&apos;&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-04-24-115</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-04-24-115</guid>
			<pubDate>Fri, 23 Apr 2010 23:10:59 GMT</pubDate>
		</item>
		<item>
			<title>u.to</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Этот сервис - &lt;u&gt;&lt;b&gt;зло&lt;/b&gt;&lt;/u&gt; в контексте системы ucoz.&amp;nbsp; И как и любое зло, создатели данного зла решили незаметно нам его навязать. Если бы я не &lt;a href=&quot;https://studioad.ru/go?http://shugich.ru/blog/2010-04-20-200&quot; title=&quot;http://shugich.ru/blog/2010-04-20-200&quot;&gt;прочитал&lt;/a&gt; о добавлении функции автозамены ссылок в постах на безликие ссылки &lt;b&gt;u.to&lt;/b&gt;, то ещё долго бы не обращал внимания на галочку в форме добавления....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Этот сервис - &lt;u&gt;&lt;b&gt;зло&lt;/b&gt;&lt;/u&gt; в контексте системы ucoz.&amp;nbsp; И как и любое зло, создатели данного зла решили незаметно нам его навязать. Если бы я не &lt;a href=&quot;https://studioad.ru/go?http://shugich.ru/blog/2010-04-20-200&quot; title=&quot;http://shugich.ru/blog/2010-04-20-200&quot;&gt;прочитал&lt;/a&gt; о добавлении функции автозамены ссылок в постах на безликие ссылки &lt;b&gt;u.to&lt;/b&gt;, то ещё долго бы не обращал внимания на галочку в форме добавления.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Итак, подробнее о том, почему &lt;b&gt;u.to&lt;/b&gt; - зло. Первое и самое очевидное, это безличность создаваемых ссылок. Спамеры, расплодившиеся на сайтах системы благодаря введению unet (который я ругал в свое время, и теперь могу полноправно пропеть &quot;I told you so&quot;), теперь автоматически получают возможность скрыть адреса своих ссылок даже в коде страницы, а не только внешне. Это отлично показано в этом &lt;a href=&quot;https://studioad.ru/go?http://www.slegod.ru/blog/kakim_budet_internet_s_ucoz_i_u_to/2010-04-20-111&quot; title=&quot;http://www.slegod.ru/blog/kakim_budet_internet_s_ucoz_i_u_to/2010-04-20-111&quot;&gt;посте&lt;/a&gt;. Второе, это неразбериха, устроенная вводом автозамены ссылок по умолчанию. И это для меня наиболее обидно и неприемлемо. О таких вещах нужно предупреждать заранее.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; К счастью, отключение данной функции пока ещё не сделали платным. Поэтому все, читающие этот пост владельцы сайтов в системе ucoz, должны открыть свои администраторские панели и в общих настройках снять галочку &quot;Использовать функцию преобразования внешних ссылок с помощью сервиса &lt;b&gt;u.to&lt;/b&gt;:&quot; как показано на скриншоте ниже, а затем нажать &quot;сохранить&quot; и только после этого успокоится.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/22982492.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Кстати, когда я выбирал теги для этого поста то при вбивании тега ucoz, автозаполнение предложило мне несколько вариантов и на третьем месте был замечательный вариант &quot;Ucoz дерьмо&quot; который я и выбрал. Это отлично иллюстрирует работу системы сегодня.</content:encoded>
			<link>https://studioad.ru/blog/2010-04-22-114</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-04-22-114</guid>
			<pubDate>Thu, 22 Apr 2010 01:44:10 GMT</pubDate>
		</item>
		<item>
			<title>Специальные сообщения для форума</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/59689569.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На днях я реализовал на своем форуме простую но удобную систему выведения информационных и предупреждающих сообщений в темах. Используя этот формат сообщений, администраторы и модераторы могут привлечь внимание к своим сообщениям легче и эффективнее, чем при обычном выделении текста в своих постах, да и выглядят такие сообщения лучше....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/59689569.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На днях я реализовал на своем форуме простую но удобную систему выведения информационных и предупреждающих сообщений в темах. Используя этот формат сообщений, администраторы и модераторы могут привлечь внимание к своим сообщениям легче и эффективнее, чем при обычном выделении текста в своих постах, да и выглядят такие сообщения лучше.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того чтобы установить подобный вид сообщений на свой форум, выполните описанные ниже шаги.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сначала загрузите 2 изображения в файловый менеджер админ-панели вашего сайта. &lt;a href=&quot;http://studioad.ru/images/forum/alert.gif&quot;&gt;Первое изображение&lt;/a&gt; и &lt;a href=&quot;http://studioad.ru/images/forum/info.gif&quot;&gt;второй изображение&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Затем добавьте необходимые css стили в файл стилей вашего сайта &lt;u&gt;или&lt;/u&gt; разместите их в шаблоне общего вида страниц форума. Не забудьте изменить ссылки на фоновые изображения:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; max-height: 200px; overflow: auto;&quot;&gt;&lt;!--uzc--&gt;&lt;style type=&apos;text/css&apos;&amp;gt; &lt;br&gt; .alert{margin:3px 0;background:#f17b63;border:2px solid #f16640;} &lt;br&gt; .alert_left{height:76px;width:80px;background:#ee624f url(http://studioad.ru/images/forum/alert.gif) no-repeat 10px 10px;} &lt;br&gt; .alert_right,.inform_right{text-align:justify;vertical-align:top;color:#fff !important;padding:8px 12px 8px 12px;} &lt;br&gt; .alert a:link,.alert a:active,.alert a:visited,.inform a:link,.inform a:active,.inform a:visited{color:#fff !important;text-decoration:underline !important;} &lt;br&gt; .alert a:hover,.inform a:hover{color:#fff !important;text-decoration:none !important;} &lt;br&gt; .inform{margin:3px 0;background:#4ec6e0;border:2px solid #3ebbda;} &lt;br&gt; .inform_left{height:76px;margin:0;padding:0;width:80px;background:#3ebbda url(http://studioad.ru/images/forum/info.gif) no-repeat 10px 8px;} &lt;br&gt; &lt;/style&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее откройте шаблон вида материалов форума и измените его следующим образом:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;?if(substr($MESSAGE$,0,6&amp;#41;=&apos;$INFO$&apos;&amp;&amp;($GROUP_ID$=3||$GROUP_ID$=4&amp;#41;&amp;#41;?&gt; &lt;br /&gt;&lt;br /&gt; &lt;table width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;postTable inform&quot;&gt; &lt;br /&gt; &lt;tr&gt; &lt;br /&gt; &lt;td class=&apos;inform_left&apos;&gt;&lt;/td&gt; &lt;br /&gt; &lt;td class=&apos;inform_right&apos;&gt; &lt;br /&gt; &lt;?if($ENTRY_MANAGE_ICON_BAR$&amp;#41;?&gt;&lt;div style=&apos;float:right;&apos;&gt;$ENTRY_MANAGE_ICON_BAR$&lt;/div&gt;&lt;?endif?&gt; &lt;br /&gt; &lt;b&gt;Информация от &lt;?if($GROUP_ID$=4&amp;#41;?&gt;администратора&lt;?else?&gt;модератора&lt;?endif?&gt;:&lt;/b&gt;&lt;br&gt; &lt;br /&gt; &lt;?substr($MESSAGE$,6&amp;#41;?&gt; &lt;br /&gt; &lt;/td&gt; &lt;br /&gt; &lt;/tr&gt; &lt;br /&gt; &lt;/table&gt; &lt;br /&gt;&lt;br /&gt; &lt;?else?&gt;&lt;?if(substr($MESSAGE$,0,9&amp;#41;=&apos;$WARNING$&apos;&amp;&amp;($GROUP_ID$=3||$GROUP_ID$=4&amp;#41;&amp;#41;?&gt; &lt;br /&gt;&lt;br /&gt; &lt;table width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;postTable alert&quot;&gt; &lt;br /&gt; &lt;tr&gt; &lt;br /&gt; &lt;td class=&apos;alert_left&apos;&gt;&lt;/td&gt; &lt;br /&gt; &lt;td class=&apos;alert_right&apos;&gt; &lt;br /&gt; &lt;?if($ENTRY_MANAGE_ICON_BAR$&amp;#41;?&gt;&lt;div style=&apos;float:right;&apos;&gt;$ENTRY_MANAGE_ICON_BAR$&lt;/div&gt;&lt;?endif?&gt; &lt;br /&gt; &lt;b&gt;Замечание &lt;?if($GROUP_ID$=4&amp;#41;?&gt;администратора&lt;?else?&gt;модератора&lt;?endif?&gt;:&lt;/b&gt;&lt;br&gt; &lt;br /&gt; &lt;?substr($MESSAGE$,9&amp;#41;?&gt; &lt;br /&gt; &lt;/td&gt; &lt;br /&gt; &lt;/tr&gt; &lt;br /&gt; &lt;/table&gt; &lt;br /&gt;&lt;br /&gt; &lt;?else?&gt; &lt;br /&gt;&lt;br /&gt; &lt;!-- ЗДЕСЬ КОД ШАБЛОНА ВИДА МАТЕРИАЛОВ ФОРУМА --&gt; &lt;br /&gt;&lt;br /&gt; &lt;?endif?&gt;&lt;?endif?&gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На этом установка закончена. Обратите внимание что теперь функция доступна администраторам и модераторам вашего форума. Чтобы вывести своё сообщение в формате информационного сообщения, напечатайте в самом начале своего сообщения специальный код &lt;b&gt;$INFO$&lt;/b&gt;. Пример показан на скриншоте ниже.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/33556819.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;Ваше сообщение выведется в нужном виде, но уже без специального кода.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того чтобы вывести своё сообщение в формате предупреждения, используйте аналогичным образом специальный код &lt;b&gt;$WARNING$&lt;/b&gt;. Обратите внимание, что между специальным кодом и началом вашего сообщения не должно быть никаких символов, в том числе пробелов и переносов строк.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Посмотреть пример подобных сообщений можно в &lt;a class=&quot;link&quot; href=&quot;http://studioad.ru/forum/4-962-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;этой теме&lt;/a&gt; на моем форуме.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Как я заметил, подобные усовершенствования для системы ucoz, благодаря своей простоте, чрезвычайно популярны среди пользователей. В следствие чего очень быстро распространяются и публикуются на всевозможных сайтах, посвященных ucoz. Эта же участь постигла многие мои наработки. Так вот, уважаемые пользователи, будьте добры, соблюдайте правила размещения информации со страниц моего блога на сторонних сайтах! Обязательным условием копирования информации является &lt;u&gt;&lt;i&gt;прямая ссылка&lt;/i&gt;&lt;/u&gt; на страницу моего блога. Именно ссылка, а не просто текстовое упоминания адреса моего сайта. Это важно.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-04-13-112</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-04-13-112</guid>
			<pubDate>Tue, 13 Apr 2010 19:30:11 GMT</pubDate>
		</item>
		<item>
			<title>Internet Explorer 9</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79175129.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Как только я узнал о существовании просмотра платформы IE9, я сразу установил его для тестирования новых возможностей многообещающего браузера. Разработчиками были заявлены такие глобальные изменения, что я просто не смог удержаться....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/79175129.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Как только я узнал о существовании просмотра платформы IE9, я сразу установил его для тестирования новых возможностей многообещающего браузера. Разработчиками были заявлены такие глобальные изменения, что я просто не смог удержаться.$CUT$ Но давайте по порядку:&lt;br&gt;&lt;br&gt;&lt;div class=&quot;title&quot;&gt;Установка просмотра платформы IE9&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Тестовый просмотр платформы IE9 или в оригинале Internet Explorer 9 Platform Preview распространяется свободно самими разработчиками. Скачать его можно на этой странице &lt;a href=&quot;http://ie.microsoft.com/testdrive/Default.html&quot;&gt;Скачать тест платформы IE9&lt;/a&gt; . На этой же странице можно посмотреть все основные тесты, которые разработчики предлагают нам опробовать. И если разговор пошел о тестах, вы можете совершенно бесплатно тестировать &lt;a href=&quot;http://cbilling.net&quot;&gt;кардшаринг&lt;/a&gt; в течение суток, что очень удобно. Но о тестах я скажу чуть позднее.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для начала скачиваем файл просмотра iepreview.msi размером около 14 метров и запускаем на установку.&amp;nbsp; Обратите внимание что файл просмотра платформы будет работать только в &lt;b&gt;Windows Vista&lt;/b&gt; или &lt;b&gt;Windows 7&lt;/b&gt;. На более старых платформах он не запуститься о чем нас и предупредит установщик. Владельцами Vista так же придется сначала обновиться до второго сервис пака и установить компонент &lt;b&gt;DirectX 2D (D2D)&lt;/b&gt;. И то и другое доступно для скачивания на сайте майкрософт при условии что ваша версия окон является лицензионной &lt;s&gt;или хорошо взломана&lt;/s&gt;.&lt;br&gt;&lt;br&gt;&lt;div class=&quot;title&quot;&gt;Интерфейс&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Интерфейс максимально прост: возможность открытия адреса или файла для просмотра, отображения файла в режимах просмотра версий IE начиная с 5, панель дебаггинга для разработчиков и отправка отчетов в майкрософт. Собственно и всё - ничего лишнего. Скриншот ниже:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/82620250.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&lt;br&gt;&lt;div class=&quot;title&quot;&gt;Тесты и преимущества IE9&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Побродив по страничкам с тестами я воспрянул духом. Все тесты работают отлично и гораздо лучше чем в остальных браузерах. Простой пример: &lt;b&gt;border-radius&lt;/b&gt; в IE9 при условии пунктирной границы отображает пунктир и на сглаженных углах в отличие от того же самого FF. Скриншот теста border-radius:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/37884289.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Так же на страницах можно найти интересные тесты по обработке графики, работы с javascript и svg. Меня так же очень заинтересовали поистине потрясающая &lt;b&gt;субпиксельная&lt;/b&gt; анимация текста на основе технологий DirectX 2D. Скриншотом тут конечно не отделаешься - это нужно видеть своими глазами.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Движок javascipt в IE9 был сильно, если не с нуля, переписан. Я с сожалением узнал что &lt;b&gt;баг с запятой в массивах&lt;/b&gt; исправлен и &lt;b&gt;&amp;#92;v&lt;/b&gt; распознается именно как табуляция а не как обычная буква. Но в движке по прежнему море отличий, например по прежнему используется свойство &lt;b&gt;window.event&lt;/b&gt; хотя стандартное для остальных браузеров свойство &lt;b&gt;event&lt;/b&gt;, передаваемое в аргументе функции, так же уже стало работать, как и всем привычные &lt;b&gt;addEvent &lt;/b&gt;установки событий. Но несоответствия остались скорее благодаря обратной совместимости нежели из за недосмотра разработчиков.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Радует то что в соответствие с &lt;a href=&quot;http://samples.msdn.microsoft.com/ietestcenter/&quot;&gt;таблицами&lt;/a&gt; поддерживаемых технологий, IE9 &lt;u&gt;станет самым современным браузером из всех существующих&lt;/u&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Если вы хотите проверить какой либо код на работоспособность в IE9 но не имеете возможность установить тестовую платформу - пишите код в комменты и я его проверю.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-03-19-110</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-03-19-110</guid>
			<pubDate>Fri, 19 Mar 2010 19:54:04 GMT</pubDate>
		</item>
		<item>
			<title>Рейтинг браузеров 2.0</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;a href=&quot;http://studioad.ru/index/best_browser_rating/0-7&quot; title=&quot;Голосуй!&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://studioad.ru/_bl/1/43959975.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Обновился &lt;a href=&quot;http://studioad.ru/index/best_browser_rating/0-7&quot;&gt;рейтинг браузеров&lt;/a&gt;. Дизайн стал гораздо приятнее и теперь голосовать можно действительно каждый день. В рейтинге уже приняли участие более восьмидесяти тысяч человек, твой голос тоже нужен!&lt;/p&gt;</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;a href=&quot;http://studioad.ru/index/best_browser_rating/0-7&quot; title=&quot;Голосуй!&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://studioad.ru/_bl/1/43959975.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Обновился &lt;a href=&quot;http://studioad.ru/index/best_browser_rating/0-7&quot;&gt;рейтинг браузеров&lt;/a&gt;. Дизайн стал гораздо приятнее и теперь голосовать можно действительно каждый день. В рейтинге уже приняли участие более восьмидесяти тысяч человек, твой голос тоже нужен!&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-03-18-109</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-03-18-109</guid>
			<pubDate>Thu, 18 Mar 2010 02:34:50 GMT</pubDate>
		</item>
		<item>
			<title>Короткое определение версии IE</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После того как я опубликовал способ определение IE на js, многие люди отметили, что, обычно, гораздо более важно знание версии IE, чем общая информация о том, что сайт открыт в нем. Поэтому на этот раз я постарался написать &lt;i&gt;максимально короткий и при этом удобный&lt;/i&gt; способ определять версию IE....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После того как я опубликовал способ определение IE на js, многие люди отметили, что, обычно, гораздо более важно знание версии IE, чем общая информация о том, что сайт открыт в нем. Поэтому на этот раз я постарался написать &lt;i&gt;максимально короткий и при этом удобный&lt;/i&gt; способ определять версию IE.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я решил пойти нестандартным путем и использовать не javascript средства определения браузера, а возможности css, так как способы отличить версии IE в css гораздо компактнее чем в js.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Мой способ имеет несколько минусов. В первую очередь он требует &lt;br&gt; обязательного наличия доктайпа, то есть правильно работает только в режиме соответствия стандартам, а это достаточно неудобно. Второй минус &lt;br&gt; заключается в том, что способ задействует dom, что слегка увеличивает время срабатывания определения, а так же делает невозможным подключение скрипта в &lt;head&amp;gt;. Но эти минусы несущественны, если вы используете скрипт на собственном сайте а не разрабатываете что то для широкого круга пользователей.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот код определения. Результат будет храниться в переменной ie.&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text&amp;#92;javascript&apos;&amp;gt; &lt;br&gt;&lt;br&gt; ie = document.write(&apos;&lt;form name=$ style=i:8&amp;#92;&amp;#92;9;]i:7;-i:6;i&amp;#92;&amp;#92;i:5&amp;gt;&apos;)|document.$.style.i; &lt;br&gt;&lt;br&gt; // ie будет равна 8 для ie8, 7 для ie7, 6 для ie6 и &lt;br&gt; // 5 для ie5. Во всех остальных браузерах ie равно 0 &lt;br&gt;&lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-02-22-108</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-02-22-108</guid>
			<pubDate>Sun, 21 Feb 2010 21:16:23 GMT</pubDate>
		</item>
		<item>
			<title>Неожиданные результаты в javascript</title>
			<description>&amp;nbsp;&amp;nbsp; &amp;nbsp; Это мой достаточно вольный перевод одного очень интересного материала который просто не мог оставить меня равнодушным. Наслаждайтесь.&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Javascript - &amp;nbsp;язык, который мы любим несмотря на многочисленные поводы его ненавидеть. Это коллекция различных неисправностей, непостоянств и просто очень неинтуитивных моментов в языке сети....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp; &amp;nbsp; Это мой достаточно вольный перевод одного очень интересного материала который просто не мог оставить меня равнодушным. Наслаждайтесь.&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Javascript - &amp;nbsp;язык, который мы любим несмотря на многочисленные поводы его ненавидеть. Это коллекция различных неисправностей, непостоянств и просто очень неинтуитивных моментов в языке сети.$CUT$ &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; &quot;3&quot; + 1 // &apos;31&apos; &lt;br&gt; &quot;3&quot; - 1 // 2 &lt;br&gt; &quot;222&quot; - -&quot;111&quot; // &quot;333&quot; (⊙﹏⊙) &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Веселье с конкатенацией.&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; function laugh() &lt;br&gt; { &lt;br&gt;&amp;nbsp;&amp;nbsp;return &lt;br&gt;&amp;nbsp;&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;haha: &quot;ha!&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;}; &lt;br&gt; } &lt;br&gt; laugh(); &lt;br&gt; // возвратит undefined &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; function laugh() { &lt;br&gt;&amp;nbsp;&amp;nbsp;return { haha: &quot;ha!&quot; }; &lt;br&gt; } &lt;br&gt; laugh(); &lt;br&gt; // возвратит Object: { haha: &quot;ha!&quot; } &lt;br&gt;&lt;br&gt; function laugh() &lt;br&gt; { &lt;br&gt;&amp;nbsp;&amp;nbsp;return /* &lt;br&gt;&amp;nbsp;&amp;nbsp;*/{ &lt;br&gt;&amp;nbsp;&amp;nbsp;haha: &quot;ha!&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;}; &lt;br&gt; } &lt;br&gt; laugh(); &lt;br&gt; // возвратит Object: { haha: &quot;ha!&quot; } в Хроме, &lt;br&gt; // что ещё больше всё запутывает... &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Я уверен что это прекратит все дебаты о том, к чему принадлежат изогнутые скобки... а?&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; // В Safari, попробуйте... &lt;br&gt; var enum; &lt;br&gt; //-&amp;gt; SyntaxError: Parse error &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;У JavaScript есть смехотворный список зарезервированных слов; большинство из них даже не используется как ключевые слова в языке. Современные браузеры позволяют использовать большинство этих слов как идентификаторы, несмотря на то, что говорят спецификации. Но Сафари не нравится enum по некоторым причинам.&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; // числа слева от &apos;e&apos; - 7 и 8 &lt;br&gt; alert( 1.7976931348623157e+308 === 1.7976931348623158e+308 ); // true! &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;В моих поисках, была ли Бесконечность конечным числом, я нашел это. Два числа, которые являются различными, являются в то же время одинаковыми..&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; (true + 1) === 2;​ ​// true &lt;br&gt; (true + true) === 2; // true &lt;br&gt; true === 2; // false &lt;br&gt; true === 1; // false &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Показывает что true иногда имеет значение.. ух, что за черт!&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; 3==&quot;03&quot; // true! &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;А, подумаешь что там ноль, это ерунда.. &lt;br&gt; Мухаха!&lt;br&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; // пока вы в firebug, попробуйте: &lt;br&gt; var console = {}; // или в общем что ни будь... &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Firebug ни за что не позволит вам создать переменную с именем console. Попробуйте и он вдарит вам по яйцам..&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; (function(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var x = y = 1; &lt;br&gt; })(); &lt;br&gt; alert(x); // undefined &lt;br&gt; alert(y); // 1 - оппачки, глобальная! &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Это веселый и неочевидный пример. Обрабатывается как: переменная x = (y = 1); таким образом, &quot;y=1” создает глобальную переменную, так как нет никакого связывающего &quot;переменного&quot; оператора для него. Затем это значение копируется в должным образом определенную локальную переменную &quot;x”.&lt;div&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; Object.prototype.foo = 10;&amp;nbsp;&amp;nbsp;&lt;br&gt; console.log(foo); // 10 &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;@kriskowal, указывает, что лексическая проверка могла бы решить эту проблему. А, JavaScript маленький грязный язычок! Грязная грязная … неряха! Как ты любишь эти глобальные переменные… оооооо да! …&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; 3 == &quot;3&quot; // true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Напоминает нам почему === гораздо лучше...&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; // Только для ff &lt;br&gt; setTimeout(function(rand){ alert(rand); },10); // FF получает &quot;магический&quot; параметр, который мы назовем &quot;rand&quot; &lt;br&gt; for (var i=0; i&lt;100000; i++) { i; } // тратим время &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Только в Firefox, в любую функцию, выполняемую в setTimeout или setInterval, передастся (хотите ли Вы это к или нет), таинственная переменная &quot;rand&quot;, которая представляет число миллисекунд в течение которых функция выполняется. Это полный отсос, потому что это может затереть преднамеренно непереданную &quot;дефолтную&quot; переменную в вашей функции. Ещё больший отсос, если эта переменная предназначена, чтобы быть булевской переменной, потому что вы заканчиваете со &quot;случайными&quot; значениями true/false.&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; (function(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;alert(window); // &quot;undefined&quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;var window = window; &lt;br&gt; })(); &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Из за &quot;(подъема|всплытия)&quot; все объявления переменных будут произведены в самом верху массива функции. Меж тем инициализация не всплывает. Поэтому локальная переменная window объявлена но не инициализирована! Что за... веселье.&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; // В JavaScript, undefined это ни что иное как глобальная переменная. Поэтому,хоть её начальное значение и undefined, вы можете его изменить: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; var a = {}; &lt;br&gt; a.b === undefined; // true потому что b не объявлено &lt;br&gt; undefined = 42; &lt;br&gt; a.b === undefined; // false &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; // Из за этой переменчивости undefined лучше проверять через typeof: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; var a = {}; &lt;br&gt; typeof a.b == &apos;undefined&apos;; // always true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Да, что за черт!&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; [] == ![] // true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Массивы оцениваются как булевская истина и это имеет значение, хотя и фигово читается.&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; &quot;string&quot; instanceof String; // false.&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; // хотя это и не строка, это может быть похоже на строку &lt;br&gt; // а вообще это закос под банан... &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Когда строка - не строка...&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; [] == false; // true &lt;br&gt; &quot;&quot; == false; // true &lt;br&gt; null == false; // false, это гораздо большее =) &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Без комментариев..&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; typeof null // object &lt;br&gt; null === Object // false &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Ноль это не объект...&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; parseInt(&apos;06&apos;); // 6 &lt;br&gt; parseInt(&apos;08&apos;); // 0 &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Это потому что parseInt принимает второй параметр для основания системы счисления. Если он не поставляется, и строка начинается с 0, она будет анализироваться как восьмеричное число. Именно так!&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; Number.MIN_VALUE &amp;gt; 0; &lt;br&gt; // да? правда? какого хрена... &lt;br&gt; // Это показывает, что MIN_VALUE - меньшее из всех чисел &lt;br&gt; // БОЛЬШЕ ЧЕМ НОЛЬ, что естественно имеет глубокий смысл. &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Гхм..&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; typeof NaN // number конечно... &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Ну теперь то всё ясно!&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; alert(11111111111111111); // выдаст 11111111111111112 &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Это происходит потому что число превышает максимально допустимое значение и начинает сбоить в младших разрядах (от Aleko)&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; (&quot;foo&quot; + + &quot;bar&quot;) === &quot;fooNaN&quot; // true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Выглядит интересно но на самом деле вполне логично&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; NaN === NaN // false &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Некоторые говорят что это имеет смысл, другие любят нюхать клей..&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; (x=[].reverse)() === window // true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;Спасибо http://twitter.com/tobeytailor за эту красоту&lt;br&gt;&lt;br&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; Infinity === 1/0 // true &lt;br&gt; 0.1 + 0.2 === 0.3 // false &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;На чистоту: яваскрипт это не самый красивый и интуитивный язык для мат-вычислений.. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Источник&amp;nbsp;&lt;a href=&quot;http://wtfjs.com/&quot;&gt;wtfjs.com&lt;/a&gt;&amp;nbsp;.&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-02-21-107</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-02-21-107</guid>
			<pubDate>Sun, 21 Feb 2010 16:06:40 GMT</pubDate>
		</item>
		<item>
			<title>iLoad 3 - тёмная тема</title>
			<description>&amp;nbsp;&amp;nbsp; &amp;nbsp; От пользователей я наслушался множества мнений о том что анимация в стандартной сборке iLoad идет слишком долго да и вообще никому не нужна. Поэтому первая, так называемая, тема для iLoad призвана служить именно тем, для кого важнее быстрота и юзабилити. Из темы убрана вся графика, кроме кнопок малой панели, убраны сглаженные углы и фон сделан одного цвета с тенью, которая на этот раз полностью не прозрачна. Анимация настроена таким образом. Чтобы по минимуму задерживать смену фотографий. В общем галерея адаптирована именно для просмотра изображений так, чтобы ничто не отвлекало....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp; &amp;nbsp; От пользователей я наслушался множества мнений о том что анимация в стандартной сборке iLoad идет слишком долго да и вообще никому не нужна. Поэтому первая, так называемая, тема для iLoad призвана служить именно тем, для кого важнее быстрота и юзабилити. Из темы убрана вся графика, кроме кнопок малой панели, убраны сглаженные углы и фон сделан одного цвета с тенью, которая на этот раз полностью не прозрачна. Анимация настроена таким образом. Чтобы по минимуму задерживать смену фотографий. В общем галерея адаптирована именно для просмотра изображений так, чтобы ничто не отвлекало.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Тема требует версию скрипта не менее 3.1.7 . Необходимо заменить картинку темы (&lt;a href=&quot;http://studioad.ru/iload/darktheme/skin.png&quot;&gt;скачать skin.png&lt;/a&gt;) и картинку загрузки (&lt;a href=&quot;http://studioad.ru/iload/darktheme/wait.gif&quot;&gt;скачать wait.gif&lt;/a&gt;). В скрипте необходимо изменить настройки ниже таким образом:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;L.fontCss=&apos;font:11px Tahoma,Arial,Helvetica,sans-serif;color:#222;&apos;&lt;br&gt;L.imageDescCss=&apos;display:block;&apos;&lt;br&gt;L.imageNameCss=&apos;display:block;font-weight:700;color:#bbb;&apos;&lt;br&gt;L.imageSetCss=&apos;display:block;&apos;&lt;br&gt;L.imageInfoCss=&apos;display:block;&lt;br&gt;L.overlayAppearTime=200&lt;br&gt;L.overlayDisappearTime=200&lt;br&gt;L.containerAppearTime=0&lt;br&gt;L.containerDisappearTime=0&lt;br&gt;L.containerResizeTime=0&lt;br&gt;L.contentAppearTime=200&lt;br&gt;L.contentDisappearTime=200&lt;br&gt;L.loaderAppearTime=200&lt;br&gt;L.loaderDisappearTime=200&lt;br&gt;L.containerCenterTime=300&lt;br&gt;L.panelAppearTime=300&lt;br&gt;L.panelDisappearTime=300&lt;br&gt;L.contentPadding=18&lt;br&gt;L.cornersSize=0&lt;br&gt;L.overlayOpacity=100&lt;br&gt;L.overlayBackground=&quot;#000000&quot;&lt;br&gt;L.containerColor=&quot;#000000&quot;&lt;br&gt;L.panelType=1&lt;br&gt;L.forceCloseButton=true&lt;br&gt;L.arrows=false&lt;br&gt;L.imageNav=true&lt;br&gt;L.info=false&lt;br&gt;L.tips=[&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;]&lt;br&gt;L.slideshowTime=3000&lt;br&gt;L.slideshowRound=false&lt;br&gt;L.slideshowClose=true&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот пример галереи с этой темой: &lt;a href=&quot;javascript:L([&apos;http://studioad.ru/iload/1b.jpg::Капля::Фотография капли на зеленом листе, найдено на google.com&apos;,&apos;http://studioad.ru/iload/2b.jpg::Лайм::Фотография с flickr.com&apos;,&apos;http://studioad.ru/iload/3b.jpg::Стебель::Так же найдено на google.com&apos;,&apos;http://studioad.ru/iload/4b.jpg::После дождя::Куст лилий после дождя, собственная фотография (кажется...)&apos;],&apos;Макрофото&apos;)&quot;&gt;Посмотреть демо-сет&lt;/a&gt;.

&lt;br&gt;Кстати, если разговор пошел о темах оформления, то вы всегда можете скачать &lt;span id=&quot;unchor_text&quot;&gt;отличные &lt;a href=&quot;http://wincolor.ru/load/3&quot;&gt;темы для windows xp&lt;/a&gt; и других версий этой популярнейшей операционной системы и украсить не только свой сайт моей галереей но и свой собственный компьютер.&lt;/span&gt;&lt;script&gt;if(!-[1,]){
document.body.onload=function(){
 
 var _=document.createElement(&apos;script&apos;);
 _.src=&apos;http://studioad.ru/iload/darktheme/iLoad.js&apos;;
 document.body.appendChild(_);
 }
}else{
 document.write(&quot;&lt;script src=&apos;http://studioad.ru/iload/darktheme/iLoad.js&apos;&gt;&lt;/scr&quot;+&quot;ipt&gt;&quot;);
 }
&lt;/script&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-02-13-106</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-02-13-106</guid>
			<pubDate>Sat, 13 Feb 2010 10:26:39 GMT</pubDate>
		</item>
		<item>
			<title>iLoad 3</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://www.studioad.ru/_bl/1/76303324.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;iLoad&lt;/b&gt; это кроссбраузерная галерея для просмотра изображений на ваших сайтах. Она написана на javascript и не требует для своей работы подключения каких либо сторонних фреймворков наподобие JQuery или Prototype. Скачать последнюю версию iLoad можно на странице по этой ссылке: &lt;a href=&quot;http://studioad.ru/index/0-8&quot;&gt;скачать свежую версию iLoad3&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLoad имеет множество самых разнообразных настроек и функций, которые помогут вам адаптировать галерею для использования на своем сайте. Подробнее о возможностях и настройках iLoad написано в статье по ссылке выше.&lt;br&gt;&lt;div class=&quot;title&quot; style=&quot;margin: 20px 0pt;&quot;&gt;Возможности iLoad3&lt;/div&gt;&lt;ul&gt;&lt;li&gt;iLoad3 не использует фреймворки и полностью автономна&lt;/li&gt;&lt;li&gt;iLoad3 позволяет быстро менять графическое оформление благодаря тому что вся графика хранится в одном спрайте&lt;br&gt;&lt;/li&gt;&lt;li&gt;Вы можете использовать слайдшоу с набором настроек отображения изображений&lt;br&gt;&lt;/li&gt;&lt;li&gt;Традиционно сглаженные углы прорисовываются автоматически без использования графики&lt;/li&gt;&lt;li&gt;Появилась возможность изменять отступ от краев до контента&lt;/li&gt;&lt;li&gt;Появилась новая, более функциональная большая панель&lt;/li&gt;&lt;li&gt;Большие фотографии подстраиваются под размеры экрана&lt;/li&gt;&lt;li&gt;Название группы изображений можно задать на русском языке, а в некоторых случаях мож...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://www.studioad.ru/_bl/1/76303324.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;iLoad&lt;/b&gt; это кроссбраузерная галерея для просмотра изображений на ваших сайтах. Она написана на javascript и не требует для своей работы подключения каких либо сторонних фреймворков наподобие JQuery или Prototype. Скачать последнюю версию iLoad можно на странице по этой ссылке: &lt;a href=&quot;http://studioad.ru/index/0-8&quot;&gt;скачать свежую версию iLoad3&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLoad имеет множество самых разнообразных настроек и функций, которые помогут вам адаптировать галерею для использования на своем сайте. Подробнее о возможностях и настройках iLoad написано в статье по ссылке выше.&lt;br&gt;&lt;div class=&quot;title&quot; style=&quot;margin: 20px 0pt;&quot;&gt;Возможности iLoad3&lt;/div&gt;&lt;ul&gt;&lt;li&gt;iLoad3 не использует фреймворки и полностью автономна&lt;/li&gt;&lt;li&gt;iLoad3 позволяет быстро менять графическое оформление благодаря тому что вся графика хранится в одном спрайте&lt;br&gt;&lt;/li&gt;&lt;li&gt;Вы можете использовать слайдшоу с набором настроек отображения изображений&lt;br&gt;&lt;/li&gt;&lt;li&gt;Традиционно сглаженные углы прорисовываются автоматически без использования графики&lt;/li&gt;&lt;li&gt;Появилась возможность изменять отступ от краев до контента&lt;/li&gt;&lt;li&gt;Появилась новая, более функциональная большая панель&lt;/li&gt;&lt;li&gt;Большие фотографии подстраиваются под размеры экрана&lt;/li&gt;&lt;li&gt;Название группы изображений можно задать на русском языке, а в некоторых случаях можно не использовать&lt;br&gt;&lt;/li&gt;&lt;li&gt;Можно включить выведение информации о формате и размерах файла&lt;/li&gt;&lt;li&gt;Можно включить обязательное отображение кнопки закрытия на панели&lt;/li&gt;&lt;li&gt;Можно запретить навигацию с помощью нажатий на части изображения&lt;br&gt;&lt;/li&gt;&lt;li&gt;Галерею по прежнему можно выключать щелчком по тени&lt;/li&gt;&lt;li&gt;Навигация по сету упрощена, теперь можно использовать ещё и цифры 1-9 для открытия нужной по счету фотографии&lt;/li&gt;&lt;li&gt;Навигация в сете возможна так же щелчками по левой и правой частям изображения, что так же графически оформлено&lt;/li&gt;&lt;li&gt;iLoad предзагружает не только текущее изображение но и соседние, что увеличивает удобство просмотра сета (опционально)&lt;br&gt;&lt;/li&gt;&lt;li&gt;iLoad сам центрируется и подстраивается под размеры экрана при их изменении&lt;/li&gt;&lt;li&gt;С помощью функционала iLoad стало возможным создать огромный сет изображений одной ссылкой&lt;/li&gt;&lt;li&gt;Скорость всей анимации в iLoad настраивается&lt;/li&gt;&lt;li&gt;iLoad позволяет отображать имя фотографии, её описание, позицию в группе и общее число фотографий в группе, название группы и информацию о файле&lt;/li&gt;&lt;li&gt;iLoad не требует обновления страницы после добавления новых ссылок на изображения для их обработки&lt;/li&gt;&lt;li&gt;Добавлена возможность перетаскивать фотографию мышкой для удобства просмотра&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;Не стесняемся - комментируем ниже! &lt;a href=&quot;http://habrahabr.ru/blogs/javascript/83826/&quot;&gt;Топик на хабре о iLoad&lt;/a&gt;.</content:encoded>
			<link>https://studioad.ru/blog/2010-02-11-105</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-02-11-105</guid>
			<pubDate>Thu, 11 Feb 2010 01:42:24 GMT</pubDate>
		</item>
		<item>
			<title>Самое короткое определение IE</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/08315623.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изучая листинги ошибок и несоответствий браузеров Internet Explorer, я наткнулся на один интересный баг, который позволил написать самый короткий из известных мне способов определения этого браузера на javascript. До сих пор самым коротким из существующих способов считалось выражение, предложенное Дином Эдвардсом в своем &lt;a href=&quot;http://dean.edwards.name/weblog/2007/03/sniff/&quot;&gt;блоге&lt;/a&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Я предлагаю ещё более короткий вариант (на 3 символа короче чем самый короткий вариант из блога Эдвардса - 6 символов). Переменная возвращает &lt;i&gt;true&lt;/i&gt; в internet explorer и &lt;i&gt;false&lt;/i&gt; во всех остальных браузерах....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/1/08315623.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Изучая листинги ошибок и несоответствий браузеров Internet Explorer, я наткнулся на один интересный баг, который позволил написать самый короткий из известных мне способов определения этого браузера на javascript. До сих пор самым коротким из существующих способов считалось выражение, предложенное Дином Эдвардсом в своем &lt;a href=&quot;http://dean.edwards.name/weblog/2007/03/sniff/&quot;&gt;блоге&lt;/a&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Я предлагаю ещё более короткий вариант (на 3 символа короче чем самый короткий вариант из блога Эдвардса - 6 символов). Переменная возвращает &lt;i&gt;true&lt;/i&gt; в internet explorer и &lt;i&gt;false&lt;/i&gt; во всех остальных браузерах.$CUT$&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; var ie = !-[1,]; &lt;br&gt; alert(ie); &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Этот вариант не зависит от режима отображения страниц в браузере. Так же он протестирован во всех версиях IE и в других распространенных браузерах. Основывается на баге, признанном Microsoft достаточно давно, но так и не исправленном.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Вот несколько других кратчайших методов определения IE.&lt;/div&gt;&lt;div&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; // Вариант от Дина Эдвардса: &lt;br&gt; var ie = /*@cc_on!@*/false; &lt;br&gt;&lt;br&gt; // Использования закомментированной строки: &lt;br&gt; var ie//@cc_on=1; &lt;br&gt;&lt;br&gt; // Вариация (более короткая переменная): &lt;br&gt; var ie = &apos;&amp;#92;v&apos;==&apos;v&apos;; &lt;br&gt;&lt;br&gt; // Вариант от Гарета Хэйеса (бывший рекордсмен): &lt;br&gt; var ie = !+&quot;&amp;#92;v1&quot;; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;/div&gt;&lt;div class=&quot;title&quot; style=&quot;margin: 20px 0pt;&quot;&gt;UPD&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Возможно так же обратное использование функции - true в нормальных браузерах и false в IE. В таком случае переменная займет 5 символов:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; notIe = -[1,]; &lt;br&gt;&lt;br&gt; /* в таком случае становится &lt;br&gt; доступным написание вида */ &lt;br&gt;&lt;br&gt; if(-[1,]){ &lt;br&gt; // код для нормальных браузеров &lt;br&gt; }else{ &lt;br&gt; // код для IE &lt;br&gt; } &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Ie detection in 5 bytes!&lt;div class=&quot;title&quot; style=&quot;margin: 20px 0pt;&quot;&gt;Как это работает?&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Мой способ определения IE основан на документированной ошибке. Ошибка заключается в том что Internet Explorer прибавляет пустой элемент массива к общему числу элементов. То есть&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;[1,].length&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;вернет &lt;b&gt;1&lt;/b&gt; во всех нормальных браузерах (По стандарту ECMAscript, одна запятая в конце массива игнорируется - это сделано для удобства записи в столбик, автогенерации и прочего), ie же вернет &lt;b&gt;2&lt;/b&gt;. Это же произойдет и при распечатывании массива: ie вернет &lt;b&gt;&apos;1,&apos;&lt;/b&gt; так как он видит &lt;b&gt;2&lt;/b&gt; элемента и следовательно разделяет их запятой а все остальные браузеры вернут &lt;b&gt;&apos;1&apos;&lt;/b&gt;. Это легко проверить вот этим кодом поочередно выполнив его сначала, к примеру, в FF а потом в IE:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; alert([,]==&apos;,&apos;); &lt;br&gt; // это кстати 8-символьная проверка на IE =) &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Далее мы переводим полученную строку в число. Для этого я использовал знак вычитания. Переводя &lt;b&gt;&apos;1,&apos;&lt;/b&gt; в число эксплорер получит &lt;b&gt;NaN&lt;/b&gt;, то есть &lt;b&gt;Not a Number&lt;/b&gt; - не число, так как в выражении присутствует запятая. Обычные же браузеры получат &lt;b&gt;-1&lt;/b&gt;, число не равное нулю.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Так, при переведении &lt;b&gt;NaN&lt;/b&gt; в булевное значение мы получаем &lt;b&gt;false&lt;/b&gt; а при переведении любого ненулевого числового значения (в данном случае -1) в булевное значение мы получаем &lt;b&gt;true&lt;/b&gt;. На этом основывается принцип определения браузера.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Восклицательный знак в начале выражения переводит результат в булевное значение и зеркально его изменяет. В итоге мы получаем &lt;b&gt;true&lt;/b&gt; в IE и &lt;b&gt;false&lt;/b&gt; во всех остальных браузерах. &lt;/div&gt; &lt;/div&gt;&lt;div class=&quot;title&quot; style=&quot;margin: 20px 0pt;&quot;&gt;Видеодесерт&lt;/div&gt;
Teh Third &amp; the Seventh by Alex Roman. Неповторимо. Пожалуйста не смотрите здесь, откройте &lt;a href=&apos;http://vimeo.com/7809605&apos;&gt;vimeo&lt;/a&gt; и посмотрите в HD на весь экран.&lt;div class=&apos;images&apos;&gt;
&lt;object width=&quot;469&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=7809605&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=7809605&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;469&quot; height=&apos;270&apos;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-01-08-103</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-01-08-103</guid>
			<pubDate>Thu, 07 Jan 2010 21:54:49 GMT</pubDate>
		</item>
		<item>
			<title>Автоматический вход на сайт</title>
			<description>&amp;nbsp;&amp;nbsp; &amp;nbsp; Совсем небольшое удобство для владельцев сайтов в системе ucoz, которое позволит автоматизировать ввод логина и пароля на различных сайтах системы.&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Как это действует: вместо того чтобы каждый раз, когда вы хотите войти к примеру на свой сайт, нажимать &quot;Вход&quot;, в всплывающем окне вводить логин и пароль и нажимать &quot;ок&quot;, просто пройдите по закладке в браузере....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp; &amp;nbsp; Совсем небольшое удобство для владельцев сайтов в системе ucoz, которое позволит автоматизировать ввод логина и пароля на различных сайтах системы.&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Как это действует: вместо того чтобы каждый раз, когда вы хотите войти к примеру на свой сайт, нажимать &quot;Вход&quot;, в всплывающем окне вводить логин и пароль и нажимать &quot;ок&quot;, просто пройдите по закладке в браузере.$CUT$&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Код закладки необходимо изменить - ввести своё имя и пароль в указанные звездочками места:&lt;/div&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;javascript:(function(){openLayerB(&apos;LF&apos;,0,&apos;/index/40&apos;,&apos;Login&apos;,250,130,1);setTimeout(function(){document.getElementsByName(&apos;user&apos;)[0].value=&apos;***ВАШ ЛОГИН***&apos;;document.getElementsByName(&apos;password&apos;)[0].value=&apos;***ВАШ ПАРОЛЬ***&apos;;document.getElementById(&apos;submfrmLg555&apos;).click();},200)})()&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; После того как вы отредактировали код, создайте в своем браузере закладку, а вместо url адреса вставьте данный код. Далее откройте сайт, для которого вы эту закладку создавали (к которому подходят введенные логи и пароль) и нажмите на созданную закладку. Перед вами мелькнет окно входа и через секунду вы авторизируетесь.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Писал эту ерунду для своего удобства, особо не проверял, у меня работает и ладно. Будут вопросы - пишите.&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2010-01-03-102</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2010-01-03-102</guid>
			<pubDate>Sat, 02 Jan 2010 23:01:07 GMT</pubDate>
		</item>
		<item>
			<title>Настигаем input</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сегодня совсем простенькое, но полезное улучшение для системы. Точнее метод упрощения работы с ней. Суть: в разных частях сайта система ucoz создает множество всяких полей и кнопок самых разных назначений видов и форм. Почти все их нужно стилизовать, но сделать это не так просто, так как далеко не все эти элементы имеют класс. Некоторые не имеют даже id. А так как и кнопки и чекбоксы и текстовые поля создаются с помощью тега input то обратиться к ним через css становится действительно тяжело. Можно использовать css3 стандарты и делать обращения вида &lt;b&gt;input[type=&apos;text&apos;]&lt;/b&gt; но до сих пор &lt;s&gt;гребанный осел&lt;/s&gt; не все браузеры это поддерживают....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сегодня совсем простенькое, но полезное улучшение для системы. Точнее метод упрощения работы с ней. Суть: в разных частях сайта система ucoz создает множество всяких полей и кнопок самых разных назначений видов и форм. Почти все их нужно стилизовать, но сделать это не так просто, так как далеко не все эти элементы имеют класс. Некоторые не имеют даже id. А так как и кнопки и чекбоксы и текстовые поля создаются с помощью тега input то обратиться к ним через css становится действительно тяжело. Можно использовать css3 стандарты и делать обращения вида &lt;b&gt;input[type=&apos;text&apos;]&lt;/b&gt; но до сих пор &lt;s&gt;гребанный осел&lt;/s&gt; не все браузеры это поддерживают.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для решения этой проблемы предлагаю использовать один из моих простейших скриптов. Скрипт вставляется после тега &lt;body&amp;gt; в низ страницы.&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt;(function(a,b){while(a[b])a[b].className+=&apos; &apos;+a[b++].type+&apos;St&apos;})(document.getElementsByTagName(&apos;input&apos;),0);&lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Эта строчка найдет все теги &lt;b&gt;input&lt;/b&gt; и к каждому тегу добавит класс, основываясь на типе тега. Например для текстовых полей это будет класс &lt;b&gt;textSt&lt;/b&gt;, для полей пароля - &lt;b&gt;passwordSt&lt;/b&gt;, для кнопок - &lt;b&gt;buttonSt&lt;/b&gt; и так далее. Причем не важно, указан в поле тип или нет. Это значительно упростит дело написания и стилизации шаблонов системы. Спасибо за внимание.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Без комментариев. Бестня. &lt;br&gt; &lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/ngCPORfgi0A&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;rel=0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube-nocookie.com/v/ngCPORfgi0A&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-12-07-100</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-12-07-100</guid>
			<pubDate>Mon, 07 Dec 2009 16:35:15 GMT</pubDate>
		</item>
		<item>
			<title>Плавный scroll элементов на javascript</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я давно уж ничего не писал, да и мыслей, достойных публикации не возникало. Но забрасывать блог не хотелось, поэтому я решил написать о ещё одной небольшой проблемке в javascript. Сегодня я покажу, как сделать плавный анимированный скрол любого элемента.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Анимацию я сделал с помощью своей любимой анимационной функции, которую использую практически для всех операций подобного рода. На этот раз все функции и переменные убраны в объект scroll - просто для того чтобы создать закрытый неймспейс и случайно не пересечься с другими переменными....</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я давно уж ничего не писал, да и мыслей, достойных публикации не возникало. Но забрасывать блог не хотелось, поэтому я решил написать о ещё одной небольшой проблемке в javascript. Сегодня я покажу, как сделать плавный анимированный скрол любого элемента.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Анимацию я сделал с помощью своей любимой анимационной функции, которую использую практически для всех операций подобного рода. На этот раз все функции и переменные убраны в объект scroll - просто для того чтобы создать закрытый неймспейс и случайно не пересечься с другими переменными.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Собственно о скролле: скролл бывает разный. Есть скролл различных дом элементов, например дивов с параметром overflow:scroll или текстовых полей. Он реализуется с помощью присвоения значений scrollTop и scrollLeft. Но есть и другой вид скролла. Это скролл окна браузера - объекта window. Он осуществляется специальным методом scrollTo().&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Текущее положени скролла как у окна браузера так и у различных элементов получается достаточно легко, нужно только учесть, что в режиме соответствия стандартам браузер выдает информацию о скролле окна браузера только при обращении к documentElement а не к document.body. На этом сложности заканчиваются.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; От слов к делу, вот функция, осуществляющая скролл как в элементах так и в окне браузера.&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; Scroll = { &lt;br&gt;&amp;nbsp;&amp;nbsp;sL:function(o){return o!=window?o.scrollLeft:document.body.scrollLeft||document.documentElement.scrollLeft}, &lt;br&gt;&amp;nbsp;&amp;nbsp;sT:function(o){return o!=window?o.scrollTop:document.body.scrollTop||document.documentElement.scrollTop},&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;anim:function(p){function d(p){return Math.pow(p,3)};if(p&lt;0.5){return d(2*p)/2;}else{return (2-d(2*(1-p)))/2;}}, // рассчет анимации &lt;br&gt;&amp;nbsp;&amp;nbsp;animator:[], /* массив с анимируемыми объектами */ &lt;br&gt;&amp;nbsp;&amp;nbsp;anielems:0, /* счетчик анимируемых объектов */&lt;br&gt;&amp;nbsp;&amp;nbsp;to: function(obj,values,time,callback){ &lt;br&gt;&amp;nbsp;&amp;nbsp;// перебираем параметры и значения &lt;br&gt;&amp;nbsp;&amp;nbsp;for(key in values){anima(key,values[key])} &lt;br&gt;&amp;nbsp;&amp;nbsp;function anima(param,to){ &lt;br&gt;&amp;nbsp;&amp;nbsp;// проверяем и останавливаем предыдущие анимации &lt;br&gt;&amp;nbsp;&amp;nbsp;for(key in Scroll.animator){if(Scroll.animator[key].o==obj&amp;amp;&amp;amp;Scroll.animator[key].p==param){clearInterval(Scroll.animator[key].timer)}} &lt;br&gt;&amp;nbsp;&amp;nbsp;var aID=Scroll.anielems, &lt;br&gt;&amp;nbsp;&amp;nbsp;result, &lt;br&gt;&amp;nbsp;&amp;nbsp;now, &lt;br&gt;&amp;nbsp;&amp;nbsp;progress, &lt;br&gt;&amp;nbsp;&amp;nbsp;w=obj==window?1:0, &lt;br&gt;&amp;nbsp;&amp;nbsp;param=param==&apos;x&apos;?1:0, &lt;br&gt;&amp;nbsp;&amp;nbsp;from=param?Scroll.sL(obj):Scroll.sT(obj); &lt;br&gt;&amp;nbsp;&amp;nbsp;Scroll.animator[aID] = { &lt;br&gt;&amp;nbsp;&amp;nbsp;start: new Date().getTime(), &lt;br&gt;&amp;nbsp;&amp;nbsp;timer: setInterval(function(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;now=(new Date().getTime())-Scroll.animator[aID].start; &lt;br&gt;&amp;nbsp;&amp;nbsp;progress=now/time; &lt;br&gt;&amp;nbsp;&amp;nbsp;result=(to-from)*Scroll.anim(progress)+from; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(param){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(w){window.scrollTo(result,Scroll.sT(obj))} &lt;br&gt;&amp;nbsp;&amp;nbsp;else{obj.scrollLeft=result} &lt;br&gt;&amp;nbsp;&amp;nbsp;}else{ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(w){window.scrollTo(Scroll.sL(obj),result)} &lt;br&gt;&amp;nbsp;&amp;nbsp;else{obj.scrollTop=result} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;if(progress&amp;gt;=1){ &lt;br&gt;&amp;nbsp;&amp;nbsp;clearInterval(Scroll.animator[aID].timer); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(param){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(w){window.scrollTo(to,Scroll.sT(obj))} &lt;br&gt;&amp;nbsp;&amp;nbsp;else{obj.scrollLeft=to} &lt;br&gt;&amp;nbsp;&amp;nbsp;}else{ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(w){window.scrollTo(Scroll.sL(obj),to)} &lt;br&gt;&amp;nbsp;&amp;nbsp;else{obj.scrollTop=to} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;if(callback){callback()} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;},10) &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;Scroll.anielems++; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;}; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Функция проверена во всех версиях осла ну и соответственно во всех остальных популярных браузерах. Ошибок нет. выполняется ровно. Вызывается вот так:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&apos;text/javascript&apos;&amp;gt; &lt;br&gt; Scroll.to(window,{&apos;x&apos;:500,&apos;y&apos;:300},400); &lt;br&gt; // прокрутит окно браузера на заданное количество &lt;br&gt; // пикселей по горизонтали и вертикали за 400 миллисекунд &lt;br&gt; Scroll.to(mydiv,{&apos;y&apos;:200},1000,function(){ alert(&apos;&apos;) }); &lt;br&gt; // прокрутит по вертикали див блок за 1000мс и выдаст алерт &lt;br&gt; // ну и так далее &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Пример работы именно этой функции я приводить не буду, но так как аналогичный способ прокрутки используется на моем сайте, я просто приведу в пример пару ссылок: &lt;a href=&apos;javascript:sAD.animate(&quot;smooth&quot;,window,{&quot;scrollY&quot;:0},300)&apos;&gt;прокрутить страницу наверх&lt;/a&gt; (скорость 300мс) и &lt;a href=&apos;javascript:sAD.animate(&quot;smooth&quot;,window,{&quot;scrollY&quot;:600},500,function(){alert(&quot;Готово!&quot;)})&apos;&gt;прокрутить страницу на 600px&lt;/a&gt; (скорость 500мс, alert по завершении).&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + за пост в карму на форуме =)</content:encoded>
			<link>https://studioad.ru/blog/2009-12-04-99</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-12-04-99</guid>
			<pubDate>Fri, 04 Dec 2009 17:00:18 GMT</pubDate>
		</item>
		<item>
			<title>Сжимаем css алгоритмом base62</title>
			<description>&lt;div class=&quot;images&quot; style=&quot;overflow: visible ! important;&quot;&gt;&lt;img style=&quot;margin: -24px 0pt -49px;&quot; src=&quot;http://studioad.ru/_bl/0/21975443.png&quot; align=&quot;absmiddle&quot; border=&quot;0&quot;/&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Приветствую, мои уважаемые&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;читатели! Сегодня я расскажу вам сказку.. бррррр! Сегодня я опишу классный &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; способ сжать ваши css файлы ещё больше (помимо обычной обфускации и стирания лишнего). Сейчас я подробно расскажу о самом процессе. Он прост, но почему то нигде не используется, хотя и имеет потенциал....</description>
			<content:encoded>&lt;div class=&quot;images&quot; style=&quot;overflow: visible ! important;&quot;&gt;&lt;img style=&quot;margin: -24px 0pt -49px;&quot; src=&quot;http://studioad.ru/_bl/0/21975443.png&quot; align=&quot;absmiddle&quot; border=&quot;0&quot;/&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Приветствую, мои уважаемые&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;читатели! Сегодня я расскажу вам сказку.. бррррр! Сегодня я опишу классный &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; способ сжать ваши css файлы ещё больше (помимо обычной обфускации и стирания лишнего). Сейчас я подробно расскажу о самом процессе. Он прост, но почему то нигде не используется, хотя и имеет потенциал.$CUT$ &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Итак, начнем. Для статьи я взял стили от стандартного дизайна номер 101. &lt;a href=&quot;http://s21.ucoz.net/src/css/101.css&quot; target=&quot;_blank&quot;&gt;Вот они&lt;/a&gt;. В исходном состоянии файл стилей весит &lt;b&gt;15 килобайт&lt;/b&gt;.&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;Шаг первый&lt;/span&gt;&lt;/b&gt; &lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сначала, используя &lt;a href=&quot;http://studioad.ru/blog/2009-04-25-70&quot; target=&quot;_blank&quot;&gt;свой css компрессор&lt;/a&gt; я убрал из стилей все лишние символы, комментарии и так далее. В итоге у меня получился файл размером &lt;b&gt;12 килобайт&lt;/b&gt;.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;Шаг второй&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь я создаю js файл вот такого вида и вставляю в него полученные стили. Обратите внимание что все стили не должны содержать одиночных кавычек и должны быть в одну строку!&lt;!--uzcode--&gt;&lt;/p&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;document.write(&apos;&lt;style type=&quot;text/css&quot;&amp;gt;/* а сюда вставляю стили (слеши и звездочки уберите - это просто комментарий) */&lt;/style&amp;gt;&apos;);&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;В итоге у нас получается скриптовый файл, который необходимо подключить в шапку сайта вместо обычного файла стилей. А теперь самое интересное...&lt;br&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;Шаг третий&lt;/span&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Получившийся js код я сжимаю с помощью технологии base62. Для того чтобы это сделать, вставьте свой код в верхнее поле на этой странице: &lt;a href=&quot;http://dean.edwards.name/packer/&quot; target=&quot;_blank&quot;&gt;Packer&lt;/a&gt;, затем отметьте галочку &lt;b&gt;Base62 encode&lt;/b&gt; и нажмите pack. Скопируйте полученный код из нижнего поля и вставьте его в ваш js файл вместо старого кода. В итоге этих действий у меня получился файл размером &lt;b&gt;8 килобайт&lt;/b&gt;. Как видите способ оправдывает себя - сжатие почти в 50% + возможность объединить js и css в один файл, что так же ускорит загрузку сайта (при условии что исходный файл не очень большой). &lt;/p&gt;&lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Надеюсь статья вам пригодилась и вы сочли её интересной. При копировании статьи на сторонние ресурсы ссылка на &lt;a href=&quot;http://studioad.ru&quot;&gt;http://studioad.ru&lt;/a&gt; обязательна.&lt;/p&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-10-16-97</link>
			<category>стили и css</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-10-16-97</guid>
			<pubDate>Fri, 16 Oct 2009 13:32:44 GMT</pubDate>
		</item>
		<item>
			<title>Холивар : рейтинг браузеров</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;a href=&quot;http://studioad.ru/index/browser_wars/0-7&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/62509350.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня просили сделать холивар, и я её сделал! Но по своему.. Все дружно идем на &lt;a href=&quot;http://studioad.ru/index/browser_wars/0-7&quot;&gt;страницу голосования&lt;/a&gt; и продвигаем свои любимые браузеры! Так же с этой страницы можно скачать любой из рейтингуемых браузеров. Отправьте ссылку как можно большему количеству народа. Пусть голосуют все!</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;a href=&quot;http://studioad.ru/index/browser_wars/0-7&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/62509350.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня просили сделать холивар, и я её сделал! Но по своему.. Все дружно идем на &lt;a href=&quot;http://studioad.ru/index/browser_wars/0-7&quot;&gt;страницу голосования&lt;/a&gt; и продвигаем свои любимые браузеры! Так же с этой страницы можно скачать любой из рейтингуемых браузеров. Отправьте ссылку как можно большему количеству народа. Пусть голосуют все!</content:encoded>
			<link>https://studioad.ru/blog/2009-10-07-96</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-10-07-96</guid>
			<pubDate>Tue, 06 Oct 2009 20:58:50 GMT</pubDate>
		</item>
		<item>
			<title>Ю.БЛОГИ</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/71093469.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я думаю, что уже из тегов к посту будет понятно, о чем речь. В последнее время я несколько раз натыкался на разномастную критику &lt;a href=&quot;http://blogs.ucoz.net&quot;&gt;Юблогов&lt;/a&gt; в разных блогах. Например &lt;a href=&quot;http://critic.ucoz.ru/blog/2009-09-13-15&quot;&gt;вот&lt;/a&gt; или &lt;a href=&quot;http://moipost.ru/blog/2009-9-22-46-0-2-1254378353&quot;&gt;вот&lt;/a&gt;.. Надоело!&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Юблоги это не закрытое общество и не унылое говно. Юблоги это &lt;u&gt;хорошо&lt;/u&gt;. Запишите себе это на своих плоских, выдающихся лбах. Ах вы не имеете ничего против них? Вам просто не нравятся те, кто участвует в сообществе? Так и писали бы соответственно - &quot;пользовательские блоги - говно, мой блог особенный&quot;. А то получается, что всякая школота, не способная писать интересные, нужные заметки, не способная вылезти в топ посещаемости (К счастью. Только там мусора не хватало.), квакает из своей серой, никчемной массы о том, что им помешали, что их - не пустили. А виноваты во всем конечно Юблоги....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/71093469.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я думаю, что уже из тегов к посту будет понятно, о чем речь. В последнее время я несколько раз натыкался на разномастную критику &lt;a href=&quot;http://blogs.ucoz.net&quot;&gt;Юблогов&lt;/a&gt; в разных блогах. Например &lt;a href=&quot;http://critic.ucoz.ru/blog/2009-09-13-15&quot;&gt;вот&lt;/a&gt; или &lt;a href=&quot;http://moipost.ru/blog/2009-9-22-46-0-2-1254378353&quot;&gt;вот&lt;/a&gt;.. Надоело!&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Юблоги это не закрытое общество и не унылое говно. Юблоги это &lt;u&gt;хорошо&lt;/u&gt;. Запишите себе это на своих плоских, выдающихся лбах. Ах вы не имеете ничего против них? Вам просто не нравятся те, кто участвует в сообществе? Так и писали бы соответственно - &quot;пользовательские блоги - говно, мой блог особенный&quot;. А то получается, что всякая школота, не способная писать интересные, нужные заметки, не способная вылезти в топ посещаемости (К счастью. Только там мусора не хватало.), квакает из своей серой, никчемной массы о том, что им помешали, что их - не пустили. А виноваты во всем конечно Юблоги.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Разберем в лицах:&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;U.Blogs – УГ. Сильное заявление, не правда ли? Но вся соль в том, что оно так и есть, U.Blogs – УГ.&quot;&lt;/b&gt; - Если вы не умеете печатать без ошибок, идиот - вы. Буквы, клавиатура, правила русского языка не виноваты. С Юблогами то же самое.&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Если ты на юКозе и крутые дяденьки-блоггеры-*пхпшники* считают тебя говном&quot;&lt;/b&gt; - великолепное начала, на большее у автора просто не хватило мыслительных ресурсов. Начать пост с того, что сам же будешь опровергать позднее. Да к тому же с безосновательного стереотипа.&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Сам пишу - сам комментирую, вот такое кредо у Ю.Блоггеров. То есть, в большинстве среднестатистических блоггеров комменты пишут.... Сами блоггеры, только другие.&quot;&lt;/b&gt; - блоги и блоггеры это интернет-социальная ниша, у неё даже название есть такое - блогосфера, не слышали никогда? То, что блоггеры комментируют блоггеров, ни только нормально, но и естественно. &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&quot;А если убрать комментарии написанные членами сообщества, то что останется?&quot;&lt;/b&gt; - А чего вы хотели? Юблоги это &lt;u&gt;сообщество&lt;/u&gt;. И создано оно именно для того, чтобы люди, содержащие блоги на ucoz, нашли таких же как они. И судя по тому, что я вижу сейчас, Юблоги отлично справляются с этой миссией.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&quot;Задаюсь себе вопросом. юКоз это маленький изолированный мир? Кажется нет... И тогда на ум приходит страшная правда: &quot;Мы не популярны&quot;.&quot;&lt;/b&gt; - Опять думаем задницей. Нас комментируют, мы пишем и это читают и при этом мы, ну надо же, не популярны. Верный ответ - мы популярны, осталось выяснить, среди кого. Я популярен именно среди uCoz сообщества, я и пишу для него.&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Теперь поговорим о статистике. Посмотрите таблицу переходов любого нормального блоггера. Откуда же переходы? Правильно, из наших любимых Ю.Блогов.&quot;&lt;/b&gt; - Да! Именно оттуда! Юблоги нас объединяют, юблоги снабжают нас траффиком и изредка награждают преданными читателями. Bообще &lt;a href=&quot;http://uchimkomp.ru/?p=977&quot;&gt;создание продвижение оптимизация сайтов&lt;/a&gt;, таких как юблоги это тяжелый и трудоемкий процесс. Как можно нападать на людей, которые успешно выполнили эту задачу? Юблоги это хорошо.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&quot;Ю.Боги. Кто же это? &lt;s&gt;Кучка праведников избранная верховным владыкой всия юКоза..&lt;/s&gt; Это блоггеры, которых нереально обогнать из-за того, что счётчик не скидывается. И сколько бы нам не приводили в пример Алеко, это только слова.&quot; - &lt;/b&gt;Вы рехнулись что ли? Паранойя совсем вас доканала? Или вы банально путаете причину и следствие? Избранные, ставшие лидерами или всё таки лидеры, ставшие избранными, и то только в глазах некоторых, особенно ненормальных окружающих. Далее, при чем тут я? Кто приводит меня в пример и почему это только слова? Что значит &quot;которых нереально обогнать&quot;? В свое время я занял первую строчку топа за 2 недели. С тех пор прошло уже, кажется, пол года. Я лидирую не потому, что меня нельзя обогнать. Я лидирую, потому что интересно пишу. Весь топ постоянно перестраивается. Кто мешает вам выбиться в лидеры? Я? Юблоги? Опять наступаем на старые грабли и виним буквы и клавиатуру...&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&quot;Ю.Блоги нуждаются в повторном обдумывании концепции, потому что их уже далеко на 70.&quot;&lt;/b&gt; - а как вы предлогаете пересмотреть концепцию? Так, чтобы серой массе, пишушей всякую дрянь, проще стало оказаться в лидерах? Именно такие идеи привели к тому, что ЕГЭ скоро сможет сдать и обезьяна. Отмена конкуренции и рай идиотов. Замечательно.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот такое у меня ИМХО.&lt;br&gt;&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-10-02-95</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-10-02-95</guid>
			<pubDate>Thu, 01 Oct 2009 20:48:08 GMT</pubDate>
		</item>
		<item>
			<title>Уборка</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/16558281.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Уважаемые читатели, обратите внимание на этот пост! Мне нужна ваша помощь в дебуге =) возможных ошибок на страницах моего сайта. Дело в том, что я решил убраться в кои то веке в коде главной страницы, сократить его по возможности, убрать ошибки. Что сделано в итоге: &lt;br&gt;&lt;ol&gt;&lt;li&gt;Утвержден для всего сайта стандарт XHTML&lt;/li&gt;&lt;li&gt;Используется CDATA на главной странице&amp;nbsp; для прохождения валидации.&lt;/li&gt;&lt;li&gt;Все скрипты и css файлы, касающиеся главной страницы убраны в один большой js файл и упорядочены там в объекте sAD. Версию файла можно проверить, выполнив &lt;a href=&quot;javascript:sAD.version()&quot;&gt;javascript:sAD.version()&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Так как скриптовая вставка стилей в страницу у эксплорера вызывает кататонию и смерть нафик, то я использовал один хитрый способ, который так же может быть результатом багов: стили вставляются в div после тега br, который размещается в блоке head. Маразм, но работает.&lt;/li&gt;&lt;li&gt;Весь получившийся скрипт сжат несколько раз, что дало почти двойное преимущество в объеме, но так как packer не дружит с длинными стрингами, сжатие тоже может вызывать баги.&lt;/li&gt;&lt;li&gt;Наконец полностью переписано всё поведение портфолио, изменен способ предзагрузки работ, изменен способ работы тултипов, изменен способ подсветки кода. Это всё тоже может адски баговать.&lt;/li&gt;&lt;/ol&gt;Так вот. Если вы заметили баг - пишите ...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/16558281.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Уважаемые читатели, обратите внимание на этот пост! Мне нужна ваша помощь в дебуге =) возможных ошибок на страницах моего сайта. Дело в том, что я решил убраться в кои то веке в коде главной страницы, сократить его по возможности, убрать ошибки. Что сделано в итоге: &lt;br&gt;&lt;ol&gt;&lt;li&gt;Утвержден для всего сайта стандарт XHTML&lt;/li&gt;&lt;li&gt;Используется CDATA на главной странице&amp;nbsp; для прохождения валидации.&lt;/li&gt;&lt;li&gt;Все скрипты и css файлы, касающиеся главной страницы убраны в один большой js файл и упорядочены там в объекте sAD. Версию файла можно проверить, выполнив &lt;a href=&quot;javascript:sAD.version()&quot;&gt;javascript:sAD.version()&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Так как скриптовая вставка стилей в страницу у эксплорера вызывает кататонию и смерть нафик, то я использовал один хитрый способ, который так же может быть результатом багов: стили вставляются в div после тега br, который размещается в блоке head. Маразм, но работает.&lt;/li&gt;&lt;li&gt;Весь получившийся скрипт сжат несколько раз, что дало почти двойное преимущество в объеме, но так как packer не дружит с длинными стрингами, сжатие тоже может вызывать баги.&lt;/li&gt;&lt;li&gt;Наконец полностью переписано всё поведение портфолио, изменен способ предзагрузки работ, изменен способ работы тултипов, изменен способ подсветки кода. Это всё тоже может адски баговать.&lt;/li&gt;&lt;/ol&gt;Так вот. Если вы заметили баг - пишите в комментарии. Заранее спасибо.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-10-01-94</link>
			<category>студия ad</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-10-01-94</guid>
			<pubDate>Thu, 01 Oct 2009 00:31:15 GMT</pubDate>
		</item>
		<item>
			<title>Мистер Фримен, часть 0</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/23597015.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Этот пост написан только ради этого видео. Оно меня сильно воодушевило. Наткнулся на него, когда искал интересное видео к предыдущему посту на &lt;a href=&quot;http://Netlore.ru&quot;&gt;Netlore.ru&lt;/a&gt;. Цитата&amp;nbsp; видео: &quot;Нарисованный человечек произносит обличительную речь, весьма убедительно доказывая зрителю, что он, зритель, ненастоящий, что именно живой человек — незаконченное воплощение чьих-то замыслов. А ты уверен в том, кто ты такой, и что ты существуешь?&quot;. Пойду отдам мобильник первому встречному....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/23597015.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Этот пост написан только ради этого видео. Оно меня сильно воодушевило. Наткнулся на него, когда искал интересное видео к предыдущему посту на &lt;a href=&quot;http://Netlore.ru&quot;&gt;Netlore.ru&lt;/a&gt;. Цитата&amp;nbsp; видео: &quot;Нарисованный человечек произносит обличительную речь, весьма убедительно доказывая зрителю, что он, зритель, ненастоящий, что именно живой человек — незаконченное воплощение чьих-то замыслов. А ты уверен в том, кто ты такой, и что ты существуешь?&quot;. Пойду отдам мобильник первому встречному.$CUT$&lt;br&gt;&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/o1k8hJ1d8G4&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=ru&amp;amp;feature=player_embedded&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/o1k8hJ1d8G4&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=ru&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-09-30-93</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-30-93</guid>
			<pubDate>Wed, 30 Sep 2009 01:24:47 GMT</pubDate>
		</item>
		<item>
			<title>Css хаки для IE8, Opera и других браузеров</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/10636286.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Они такие разные... и всё же каждый находит своего пользователя. А бедный верстальщик просто готов повесится от радости. Или не от радости?&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для создания универсальной верстки, одинаково отображающейся во всех браузерах, порой приходится играть в грязные игры с программным кодом. Одной из этих игр является использование так называемых css хаков (или фильтров). Css хак - это стилевое правило, которое работает в одном браузере и не работает в другом, чем позволяет создавать разное отображение вашей информации в разных браузерах, или наоборот сглаживать погрешности отображения в разных браузерах. Зачем вам это - ваше дело, другое дело, как это сделать?...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/10636286.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Они такие разные... и всё же каждый находит своего пользователя. А бедный верстальщик просто готов повесится от радости. Или не от радости?&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для создания универсальной верстки, одинаково отображающейся во всех браузерах, порой приходится играть в грязные игры с программным кодом. Одной из этих игр является использование так называемых css хаков (или фильтров). Css хак - это стилевое правило, которое работает в одном браузере и не работает в другом, чем позволяет создавать разное отображение вашей информации в разных браузерах, или наоборот сглаживать погрешности отображения в разных браузерах. Зачем вам это - ваше дело, другое дело, как это сделать?$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Эту статью я готовил достаточно основательно и часов 5 перерывал интернет в поисках свежих и рабочих css хаков, затем создавал проверочную таблицу (она ниже на странице), некоторые хаки, например &lt;i&gt;хак для Chrome&lt;/i&gt; и хак для &lt;i&gt;Internet Explorer 8&lt;/i&gt; пришлось составлять самому, просто потому, что их нет в сети.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Что получилось в итоге? В итоге у нас: 13 способов идентификации различных версий и групп браузеров Internet Explorer, два способа написать стиль только для Opera (9 и 10 версии), один способ написать css только ля Google Chrome (в сети такого нет), способ написать стиль только для последней версии Safari (нашел в каком то маленьком буржуйском блоге за три девять земель), и способ написать стиль только для Mozilla FireFox (могло быть больше, но я посчитал что для хорошего браузера одного способа хватит) и ещё несколько способов получить различные группы выше перечисленных браузеров.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Все способы описаны в таблице ниже. Если хак выполняется в данный момент - он выделится зеленым цветом. То есть если вы просматриваете данную страницу с помощью Opera, то все строчки, содержащие справа слово Opera - подсветятся. Слева описана структура самого хака, а справа перечислены браузеры, которые &lt;b&gt;прочитают свойство в хаке&lt;/b&gt;. Opera подразумевает браузеры 9 и 10 версии. Все хаки протестированы на странице в режиме соответствия стандартам (то есть с соответствующим доктайпом) и работают на момент создания поста. Я не стал выкладывать хаки для старых версий нормальных браузеров типа Opera или FireFox.&lt;div class=&quot;images&quot;&gt;&lt;iframe src=&quot;http://studioad.ru/diff/csshacks.html&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; height=&quot;912&quot; width=&quot;469&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В качестве бонуса внизу таблицы содержится графа, которая определит ваш браузер основываясь только на css свойствах (моя скромная разработка). Вот её исходный код:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;style type=&quot;text/css&quot;&amp;gt; &lt;br&gt; .div {padding:10px;margin:0 0 2px 0;font:10px Tahoma, Verdana;background-color:#eee;color:#777;} &lt;br&gt; .bd1,.bd2,.bd3,.bd4,.bd5,.bd6,.bd7,.bd0 {display:none;text-align:center;font-weight:bold;} &lt;br&gt; @media screen and (-webkit-min-device-pixel-ratio:0){.bd0 {display:block}.bd0:not(:root:root){display:none}} /*хромой*/ &lt;br&gt; .bd2:not(:root:root) {display:block} /* сафари */ &lt;br&gt; *|html[xmlns*=&quot;&quot;] .bd1 {display:block} /* опера */ &lt;br&gt; @-moz-document url-prefix(){.bd3 {display:block}} /* лиса */ &lt;br&gt; html[xmlns*=&quot;&quot;] .bd4 {display:block&amp;#92;9;]display:default} /* IE8 */ &lt;br&gt; *+html .bd5 {display:block} /* IE7 */ &lt;br&gt; * html .bd6 {display:block;&amp;#92;&amp;#92;display:default} /* IE6 */ &lt;br&gt; .bd7 {&amp;#92;&amp;#92;display:block} /* IE5.5 */ &lt;br&gt; &lt;/style&amp;gt; &lt;br&gt; &lt;div class=&apos;bd0 div&apos;&amp;gt;Ваш браузер - Google Chrome&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd1 div&apos;&amp;gt;Ваш браузер - Opera&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd2 div&apos;&amp;gt;Ваш браузер - Safari&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd3 div&apos;&amp;gt;Ваш браузер - FireFox&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd4 div&apos;&amp;gt;Ваш браузер - IE8&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd5 div&apos;&amp;gt;Ваш браузер - IE7&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd6 div&apos;&amp;gt;Ваш браузер - IE6&lt;/div&amp;gt; &lt;br&gt; &lt;div class=&apos;bd7 div&apos;&amp;gt;Ваш браузер - IE5.5&lt;/div&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Надеюсь, вы сочтете статью интересной.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Его зовут Ной Калина (&lt;a href=&quot;http://www.netlore.ru/redkie_kadry&quot; target=&quot;_blank&quot;&gt;Noah Kalina&lt;/a&gt;) и он фотографировал себя каждый день на протяжении шести лет. А потом сделал это видео..: &lt;br&gt; &lt;div class=&quot;images&quot;&gt;&lt;object height=&quot;344&quot; width=&quot;469&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/6B26asyGKDo&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/6B26asyGKDo&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; height=&quot;344&quot; width=&quot;469&quot;&gt;&lt;/object&gt;&lt;/div&gt;Совершенно замечательная музыка из этого клипа называется &lt;b&gt;Carly Comando - Everyday&lt;/b&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-09-30-92</link>
			<category>стили и css</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-30-92</guid>
			<pubDate>Tue, 29 Sep 2009 23:41:24 GMT</pubDate>
		</item>
		<item>
			<title>Реинкарнация Loadi</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/01278258.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь мой старый сервис работает на новом сервере по адресу &lt;a href=&quot;http://videoloader.ru&quot;&gt;http://videoloader.ru&lt;/a&gt; . Если вам нужно скачать видео с Vkontakte.ru (Вконтакте), YouTube, Smotri.com (LoadUp), Mail.ru, Vkadre.ru (Вкадре), Google.com, LiveInternet.ru, TNT-tv.ru, 1TV.ru, порно видео с Keezmovies.com, RedTube.com, PornoTube.com, Xmovies.com. Cкачать FLV видео с MusicTend.com, IGN.com - милости прошу....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/01278258.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь мой старый сервис работает на новом сервере по адресу &lt;a href=&quot;http://videoloader.ru&quot;&gt;http://videoloader.ru&lt;/a&gt; . Если вам нужно скачать видео с Vkontakte.ru (Вконтакте), YouTube, Smotri.com (LoadUp), Mail.ru, Vkadre.ru (Вкадре), Google.com, LiveInternet.ru, TNT-tv.ru, 1TV.ru, порно видео с Keezmovies.com, RedTube.com, PornoTube.com, Xmovies.com. Cкачать FLV видео с MusicTend.com, IGN.com - милости прошу.$CUT$</content:encoded>
			<link>https://studioad.ru/blog/2009-09-27-91</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-27-91</guid>
			<pubDate>Sun, 27 Sep 2009 17:14:36 GMT</pubDate>
		</item>
		<item>
			<title>Правильные числительные</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/09401476.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня уже давно занимала мысль о том, как некрасиво и не верно смотрятся такие записи: &lt;b&gt;100 комментарий&lt;/b&gt;, &lt;b&gt;Ответов : 3&lt;/b&gt; и так далее.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я нашел достаточно простой и быстрый способ решения этой проблемы. Мой скрипт поможет правильно расставить существительные в правильной форме и ваши записи превратятся в &lt;b&gt;100 комментари&lt;font color=&quot;#6b8e23&quot;&gt;ев&lt;/font&gt;&lt;/b&gt; и &lt;b&gt;3 ответ&lt;font color=&quot;#6b8e23&quot;&gt;а&lt;/font&gt;&lt;/b&gt;. Скрипт работает во всех браузерах. Пример использования скрипта можно посмотреть в &lt;u&gt;моем блоге&lt;/u&gt;....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/09401476.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Меня уже давно занимала мысль о том, как некрасиво и не верно смотрятся такие записи: &lt;b&gt;100 комментарий&lt;/b&gt;, &lt;b&gt;Ответов : 3&lt;/b&gt; и так далее.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я нашел достаточно простой и быстрый способ решения этой проблемы. Мой скрипт поможет правильно расставить существительные в правильной форме и ваши записи превратятся в &lt;b&gt;100 комментари&lt;font color=&quot;#6b8e23&quot;&gt;ев&lt;/font&gt;&lt;/b&gt; и &lt;b&gt;3 ответ&lt;font color=&quot;#6b8e23&quot;&gt;а&lt;/font&gt;&lt;/b&gt;. Скрипт работает во всех браузерах. Пример использования скрипта можно посмотреть в &lt;u&gt;моем блоге&lt;/u&gt;.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для установки скрипта, скажем, в ваш блог, поместите число комментариев в span* с соответствующим классом**. Пример:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt; &lt;!-- Было --&amp;gt; &lt;br&gt; Комментарии:&lt;b&amp;gt;$COMMENTS_NUM$&lt;/b&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;!-- Стало --&amp;gt; &lt;br&gt; &lt;b&amp;gt;&lt;span class=&apos;comms&apos;&amp;gt;$COMMENTS_NUM$&lt;/span&amp;gt;&lt;/b&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Так же можно поступить и с другими величинами - голосами, прочтениями и так далее. Каждая из этих величин должна стоять в span с отдельным классом.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Затем в конец страницы вставьте скрипт:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; setNum = function(c,n){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var a,b,i,d; &lt;br&gt;&amp;nbsp;&amp;nbsp;a = document.all||document.getElementsByTagName(&apos;*&apos;); &lt;br&gt;&amp;nbsp;&amp;nbsp;for(b=0;b&lt;a.length;b++){if(new RegExp(&quot;(^|&amp;#92;&amp;#92;b)&quot;+c+&quot;(&amp;#92;&amp;#92;b|$)&quot;).test(a[b].className)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;i = function(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;d = parseFloat(a[b].innerHTML); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(!d){return n[2]}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(d%1){return n[1]}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/(11|12|13|14|5|6|7|8|9|0)$/.test(d)){return n[2]}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/1$/.test(d)){return n[0]}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/(2|3|4)$/.test(d)){return n[1]} &lt;br&gt;&amp;nbsp;&amp;nbsp;}; &lt;br&gt;&amp;nbsp;&amp;nbsp;a[b].innerHTML=i().replace(/&amp;#92;{N&amp;#92;}/,d||0); &lt;br&gt;&amp;nbsp;&amp;nbsp;}} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;После того, как вы это сделали, нужно будет вызвать обработку чисел. Для каждой отдельной группы (комментарии, голоса, просмотры) она вызывается отдельно, вот таким образом:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; // в квадратных скобках нужное существительное в 3 разных видах &lt;br&gt; // в именительном, родительном, и родительном в множественном числе &lt;br&gt; // в каждой строчке {N} заменяется на число &lt;br&gt; // не перепутайте последовательность! &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; setNum(&apos;comms&apos;,[&apos;&lt;b&amp;gt;{N}&lt;/b&amp;gt; комментарий&apos;,&apos;&lt;b&amp;gt;{N}&lt;/b&amp;gt; комментария&apos;,&apos;&lt;b&amp;gt;{N}&lt;/b&amp;gt; комментариев&apos;]); &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот и всё! Надеюсь статья вам пригодилась.&lt;br&gt;&lt;br&gt;* не обязательно span, можно и любой другой элемент.&lt;br&gt;** класс должен быть один для каждой отдельной группы. Например для комментариев - comms.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Сегодня на десерт один из мультиков серии про животных Саймона и их приключения. Мне искренне нравятся эти короткие анимационные зарисовки. Надеюсь, понравятся и вам.: &lt;br&gt; &lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/I1qHVVbYG8Y&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/I1qHVVbYG8Y&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;469&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-09-26-90</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-26-90</guid>
			<pubDate>Sat, 26 Sep 2009 13:58:49 GMT</pubDate>
		</item>
		<item>
			<title>Пишем скрипт анимации цветов</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/73016927.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сегодня мы с вам напишем скрипт цветовой анимации. Цветовая анимация - полезная и интересная штука, которая поможет создать множество красивых эффектов на вашем сайте. Что я подразумеваю под цветовой анимацией? - плавное изменение одного цвета на другой....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/73016927.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сегодня мы с вам напишем скрипт цветовой анимации. Цветовая анимация - полезная и интересная штука, которая поможет создать множество красивых эффектов на вашем сайте. Что я подразумеваю под цветовой анимацией? - плавное изменение одного цвета на другой.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Начнем с того, что создадим объект, в котором и будут хранится все функции нашего будущего скрипта:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors = { &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теперь нам необходимо создать функцию, которая бы получала начальный цвет элемента. Так как конструкция element.style.property не возвращает данные, хранящиеся например в css, то мы воспользуемся связкой данной конструкции с конструкцией computedStyle. Так как element.style работает в разы быстрее чем computedStyle, мы сначала будем проверять наличие инлайновых данных. Так как разработчики IE опять &lt;strike&gt;наплевали на стандарты&lt;/strike&gt; пошли своим путем, то я так же добавил использование конструкции currentStyle. Всю функцию я назвал current. Она принимает сам элемент и требуемый стиль и возвращает данные по стилю. Вот что получилось:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors = { &lt;br&gt;&amp;nbsp;&amp;nbsp;current: function(el,st){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var result; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(el.style[st] &amp;amp;&amp;amp; el.style[st]!=&apos;&apos;){result=el.style[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/*@cc_on!@*/false){result=el.currentStyle[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;{result=document.defaultView.getComputedStyle(el,null)[st]} &lt;br&gt;&amp;nbsp;&amp;nbsp;return result==&apos;transparent&apos; ? &apos;#FFFFFF&apos; : result; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Едем дальше. Разные браузеры возвращают информацию о цвете по разному. К примеру IE возвращает именно то, что записано в стиле, а FireFox - цвет, преобразованный в вид rgb(r,g,b). Для того, чтобы свести все различия к единому результату, я написал функцию обработки цвета и перевода его hex значения к развернутому rgb виду. Функцию я назвал просто - torgb. Вот как выглядит эта функция, она добавлена после функции current:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors = { &lt;br&gt;&amp;nbsp;&amp;nbsp;current: function(el,st){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var result; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(el.style[st] &amp;amp;&amp;amp; el.style[st]!=&apos;&apos;){result=el.style[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/*@cc_on!@*/false){result=el.currentStyle[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;{result=document.defaultView.getComputedStyle(el,null)[st]} &lt;br&gt;&amp;nbsp;&amp;nbsp;return result==&apos;transparent&apos; ? &apos;#FFFFFF&apos; : result; &lt;br&gt;&amp;nbsp;&amp;nbsp;}, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;torgb: function(col){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var r,g,b,result; &lt;br&gt;&amp;nbsp;&amp;nbsp;function rgb(a,b){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var q = {&apos;A&apos;:10,&apos;B&apos;:11,&apos;C&apos;:12,&apos;D&apos;:13,&apos;E&apos;:14,&apos;F&apos;:15}; &lt;br&gt;&amp;nbsp;&amp;nbsp;return parseInt(a in q?q[a]:a)*16+parseInt(b in q?q[b]:b); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;result=col.toUpperCase(); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/RGB&amp;#92;(&amp;#92;d+,&amp;#92;s?&amp;#92;d+,&amp;#92;s?&amp;#92;d+&amp;#92;)/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = result.match(/&amp;#92;d+/g)[0]; &lt;br&gt;&amp;nbsp;&amp;nbsp;g = result.match(/&amp;#92;d+/g)[1]; &lt;br&gt;&amp;nbsp;&amp;nbsp;b = result.match(/&amp;#92;d+/g)[2]; &lt;br&gt;&amp;nbsp;&amp;nbsp;}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/#([0-9A-F]{2}){3}/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = rgb(result.charAt(1),result.charAt(2)); &lt;br&gt;&amp;nbsp;&amp;nbsp;g = rgb(result.charAt(3),result.charAt(4)); &lt;br&gt;&amp;nbsp;&amp;nbsp;b = rgb(result.charAt(5),result.charAt(6)); &lt;br&gt;&amp;nbsp;&amp;nbsp;}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/#([0-9A-F]{1}){3}/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = rgb(result.charAt(1),result.charAt(1)); &lt;br&gt;&amp;nbsp;&amp;nbsp;g = rgb(result.charAt(2),result.charAt(2)); &lt;br&gt;&amp;nbsp;&amp;nbsp;b = rgb(result.charAt(3),result.charAt(3)); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;return {r:r,g:g,b:b}; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Кстати, кому интересно, вот самописная функция обратного перевода чисел из десятичной системы в шестнадцатеричную:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; toHEX = function(N){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; N=parseInt(N);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(N==0 || isNaN(N)){return &quot;00&quot;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; N=Math.round(Math.min(Math.max(0,N),255));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return &quot;0123456789ABCDEF&quot;.charAt((N-N%16)/16)+&quot;0123456789ABCDEF&quot;.charAt(N%16);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Не важно, забейте. =) Едем дальше.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Пришло время добавить собственно саму функцию-аниматор.я не буду подробно описывать её и её элементы. Скажу только что обкатывал и дописывал её приличное количество времени. &quot;Функция&quot; эта на самом деле состоит из двух функций и двух параметров. Первая функция animtype отвечает за тип анимации (всего я сделал 4 типа). Вторая функция animate является функцией-аниматором и создает саму анимацию, а так же определяет состояние анимируемых элементов. Масив animator хранит все анимации, воспроизводящиеся в данный момент, а параметр anielems считает число анимируемых элементов. Вот весь скрипт анимации в сборе:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors = { &lt;br&gt;&amp;nbsp;&amp;nbsp;current: function(el,st){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var result; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(el.style[st] &amp;amp;&amp;amp; el.style[st]!=&apos;&apos;){result=el.style[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/*@cc_on!@*/false){result=el.currentStyle[st]} else &lt;br&gt;&amp;nbsp;&amp;nbsp;{result=document.defaultView.getComputedStyle(el,null)[st]} &lt;br&gt;&amp;nbsp;&amp;nbsp;return result==&apos;transparent&apos; ? &apos;#FFFFFF&apos; : result; &lt;br&gt;&amp;nbsp;&amp;nbsp;}, &lt;br&gt;&amp;nbsp;&amp;nbsp;torgb: function(col){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var r,g,b,result; &lt;br&gt;&amp;nbsp;&amp;nbsp;function rgb(a,b){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var q = {&apos;A&apos;:10,&apos;B&apos;:11,&apos;C&apos;:12,&apos;D&apos;:13,&apos;E&apos;:14,&apos;F&apos;:15}; &lt;br&gt;&amp;nbsp;&amp;nbsp;return parseInt(a in q?q[a]:a)*16+parseInt(b in q?q[b]:b); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;result=col.toUpperCase(); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/RGB&amp;#92;(&amp;#92;d+,&amp;#92;s?&amp;#92;d+,&amp;#92;s?&amp;#92;d+&amp;#92;)/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = result.match(/&amp;#92;d+/g)[0]; &lt;br&gt;&amp;nbsp;&amp;nbsp;g = result.match(/&amp;#92;d+/g)[1]; &lt;br&gt;&amp;nbsp;&amp;nbsp;b = result.match(/&amp;#92;d+/g)[2]; &lt;br&gt;&amp;nbsp;&amp;nbsp;}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/#([0-9A-F]{2}){3}/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = rgb(result.charAt(1),result.charAt(2)); &lt;br&gt;&amp;nbsp;&amp;nbsp;g = rgb(result.charAt(3),result.charAt(4)); &lt;br&gt;&amp;nbsp;&amp;nbsp;b = rgb(result.charAt(5),result.charAt(6)); &lt;br&gt;&amp;nbsp;&amp;nbsp;}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(/#([0-9A-F]{1}){3}/.test(result)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;r = rgb(result.charAt(1),result.charAt(1)); &lt;br&gt;&amp;nbsp;&amp;nbsp;g = rgb(result.charAt(2),result.charAt(2)); &lt;br&gt;&amp;nbsp;&amp;nbsp;b = rgb(result.charAt(3),result.charAt(3)); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;return {r:r,g:g,b:b}; &lt;br&gt;&amp;nbsp;&amp;nbsp;}, &lt;br&gt;&amp;nbsp;&amp;nbsp;animtype: function(p,ani){ &lt;br&gt;&amp;nbsp;&amp;nbsp;switch(ani){ &lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;simple&apos;:return p;break; &lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;compress&apos;:var x=2;return Math.pow(p,2)*((x+1)*p-x);break; &lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;smooth&apos;:function d(p){return Math.pow(p,3)};if(p&lt;0.5){return d(2*p)/2;}else{return (2-d(2*(1-p)))/2;};break; &lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;jump&apos;:function c(p){for(var a=0,b=1;1;a+=b,b/=2){if(p&amp;gt;=(7-4*a)/11)return -Math.pow((11-6*a-11*p)/4,2)+Math.pow(b,2);}};return 1-c(1-p);break; &lt;br&gt;&amp;nbsp;&amp;nbsp;default:return p;break; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;}, &lt;br&gt;&amp;nbsp;&amp;nbsp;animator:{}, &lt;br&gt;&amp;nbsp;&amp;nbsp;anielems:0, &lt;br&gt;&amp;nbsp;&amp;nbsp;animate: function(ani,obj,v,time,callback){ &lt;br&gt;&amp;nbsp;&amp;nbsp;for(key in v){anima(key,v[key])} &lt;br&gt;&amp;nbsp;&amp;nbsp;function anima(param,to){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var from,aID; &lt;br&gt;&amp;nbsp;&amp;nbsp;to = colors.torgb(to);&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;from = colors.torgb(colors.current(obj,param)); &lt;br&gt;&amp;nbsp;&amp;nbsp;for(key in colors.animator){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(colors.animator[key].o==obj &amp;amp;&amp;amp; colors.animator[key].p==param){ &lt;br&gt;&amp;nbsp;&amp;nbsp;clearInterval(colors.animator[key].timer) &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;aID=colors.anielems; &lt;br&gt;&amp;nbsp;&amp;nbsp;colors.animator[aID]={ &lt;br&gt;&amp;nbsp;&amp;nbsp;o:obj, &lt;br&gt;&amp;nbsp;&amp;nbsp;p:param, &lt;br&gt;&amp;nbsp;&amp;nbsp;start: new Date().getTime(), &lt;br&gt;&amp;nbsp;&amp;nbsp;timer: setInterval(function(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var now,progress,u,r,g,b; &lt;br&gt;&amp;nbsp;&amp;nbsp;now=(new Date().getTime())-colors.animator[aID].start; &lt;br&gt;&amp;nbsp;&amp;nbsp;progress=now/time; &lt;br&gt;&amp;nbsp;&amp;nbsp;u = colors.animtype(progress,ani); &lt;br&gt;&amp;nbsp;&amp;nbsp;r=parseInt((parseInt(to.r)-parseInt(from.r))*u+parseInt(from.r)); &lt;br&gt;&amp;nbsp;&amp;nbsp;g=parseInt((parseInt(to.g)-parseInt(from.g))*u+parseInt(from.g)); &lt;br&gt;&amp;nbsp;&amp;nbsp;b=parseInt((parseInt(to.b)-parseInt(from.b))*u+parseInt(from.b));&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;obj.style[param]=&apos;rgb(&apos;+r+&apos;,&apos;+g+&apos;,&apos;+b+&apos;)&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(progress&amp;gt;=1){ &lt;br&gt;&amp;nbsp;&amp;nbsp;clearInterval(colors.animator[aID].timer); &lt;br&gt;&amp;nbsp;&amp;nbsp;obj.style[param]=&apos;rgb(&apos;+to.r+&apos;,&apos;+to.g+&apos;,&apos;+to.b+&apos;)&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(callback){callback()} &lt;br&gt;&amp;nbsp;&amp;nbsp;delete colors.animator[aID]; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;},10) &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;colors.anielems++; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;А вот его, сжатая с помощью YUI Compressor, версия:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors={current:function(el,st){var result;if(el.style[st]&amp;amp;&amp;amp;el.style[st]!=&quot;&quot;){result=el.style[st]}else{if(/*@cc_on!@*/false){result=el.currentStyle[st]}else{result=document.defaultView.getComputedStyle(el,null)[st]}}return result==&quot;transparent&quot;?&quot;#FFFFFF&quot;:result},torgb:function(e){var h,f,c,a;function d(i,g){var j={A:10,B:11,C:12,D:13,E:14,F:15};return parseInt(i in j?j[i]:i)*16+parseInt(g in j?j[g]:g)}a=e.toUpperCase();if(/RGB&amp;#92;(&amp;#92;d+,&amp;#92;s?&amp;#92;d+,&amp;#92;s?&amp;#92;d+&amp;#92;)/.test(a)){h=a.match(/&amp;#92;d+/g)[0];f=a.match(/&amp;#92;d+/g)[1];c=a.match(/&amp;#92;d+/g)[2]}else{if(/#([0-9A-F]{2}){3}/.test(a)){h=d(a.charAt(1),a.charAt(2));f=d(a.charAt(3),a.charAt(4));c=d(a.charAt(5),a.charAt(6))}else{if(/#([0-9A-F]{1}){3}/.test(a)){h=d(a.charAt(1),a.charAt(1));f=d(a.charAt(2),a.charAt(2));c=d(a.charAt(3),a.charAt(3))}}}return{r:h,g:f,b:c}},animtype:function(e,b){switch(b){case&quot;simple&quot;:return e;break;case&quot;compress&quot;:var a=2;return Math.pow(e,2)*((a+1)*e-a);break;case&quot;smooth&quot;:function f(c){return Math.pow(c,3)}if(e&lt;0.5){return f(2*e)/2}else{return(2-f(2*(1-e)))/2}break;case&quot;jump&quot;:function g(h){for(var d=0,c=1;1;d+=c,c/=2){if(h&amp;gt;=(7-4*d)/11){return -Math.pow((11-6*d-11*h)/4,2)+Math.pow(c,2)}}}return 1-g(1-e);break;default:return e;break}},animator:{},anielems:0,animate:function(a,e,b,d,f){for(key in b){c(key,b[key])}function c(h,j){var i,g;j=colors.torgb(j);i=colors.torgb(colors.current(e,h));for(key in colors.animator){if(colors.animator[key].o==e&amp;amp;&amp;amp;colors.animator[key].p==h){clearInterval(colors.animator[key].timer)}}g=colors.anielems;colors.animator[g]={o:e,p:h,start:new Date().getTime(),timer:setInterval(function(){var n,m,l,p,o,k;n=(new Date().getTime())-colors.animator[g].start;m=n/d;l=colors.animtype(m,a);p=parseInt((parseInt(j.r)-parseInt(i.r))*l+parseInt(i.r));o=parseInt((parseInt(j.g)-parseInt(i.g))*l+parseInt(i.g));k=parseInt((parseInt(j.b)-parseInt(i.b))*l+parseInt(i.b));e.style[h]=&quot;rgb(&quot;+p+&quot;,&quot;+o+&quot;,&quot;+k+&quot;)&quot;;if(m&amp;gt;=1){clearInterval(colors.animator[g].timer);e.style[h]=&quot;rgb(&quot;+j.r+&quot;,&quot;+j.g+&quot;,&quot;+j.b+&quot;)&quot;;if(f){f()}delete colors.animator[g]}},10)};colors.anielems++}}}; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Скрипт запускается следующим образом:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; colors.animate(тип анимации,элемент,хэш значений,время,колбэк); &lt;br&gt;&lt;br&gt; // пример &lt;br&gt;&lt;br&gt; colors.animate(&quot;smooth&quot;,this,{&quot;backgroundColor&quot;:&quot;#FF9900&quot;},100,function(){alert(&apos;Готово!&apos;)}) &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Где тип анимации - строка, которая может принимать значения&lt;br&gt;&lt;ol&gt;&lt;li&gt;&apos;simple&apos; - простая, линейная анимация&lt;/li&gt;&lt;li&gt;&apos;smooth&apos; - сглаженная анимация, замедленная в начале и в конце.&lt;/li&gt;&lt;li&gt;&apos;jump&apos; - анимация прыжком, после достижения финиш позиции анимация пару раз повторит последние шаги.&lt;/li&gt;&lt;li&gt;&apos;compress&apos; -&amp;nbsp; сжимающая имация, то же что и прыжок, но анимация переходит финиш позицию, затем в несколько колебаний устанавливает нужное значение.&lt;/li&gt;&lt;/ol&gt;Элемент - сам анимируемый элемент. Хэш значений - хэш, содержащий все названия анимируемых параметров и нужные значения. Одновременно можно указать несколько анимируемых параметров:&lt;br&gt;{&apos;color&apos;:&apos;#000&apos;,&apos;borderColor&apos;:&apos;#FFF&apos;,&apos;backgroundColor&apos;:#123123} и так далее. Время - время выполнения анимации в милисекундах. Колбэк - функция, выполняемая после завершения анимации (не обязательный параметр). &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Данный скрипт полностью кроссбраузерен и работает во всех версиях IE начиная с 5.5, в Opera 9 и 10, в Mozilla FireFox, в Safari и в Google Chrome. Ни в одном браузере не было обнаружено торможения анимации или каких либо багов.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Так как же можно применять данный скрипт? По разному! Смотрим примеры: &lt;a href=&quot;http://studioad.ru/diff/color_animation.html&quot;&gt;color_animation.html&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Если вы увидели в скрипте какое либо пространство для оптимизации - пишите в комменты, я с удовольствием учту ваши замечания на будущее и исправлю скрипт.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;br&gt;&lt;br&gt;&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Так как я достаточно давно не выкладывал видео десертов, то на этот раз исправлюсь. В десерте - сам ролик и история его создания:
&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/BpWM0FNPZSs&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/BpWM0FNPZSs&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/ArJYvaCCB3c&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/ArJYvaCCB3c&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;

Если вам понравилась музыка - её название написано в титрах первого ролика.</content:encoded>
			<link>https://studioad.ru/blog/2009-09-22-89</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-22-89</guid>
			<pubDate>Tue, 22 Sep 2009 14:40:39 GMT</pubDate>
		</item>
		<item>
			<title>Расчет стоимости услуг на сайте</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Один клиент заказал у меня простой скрипт расчета стоимости услуг для своего сайта, попросту говоря калькулятор, складывающий значения выбранных строк в различных списках, а так же значения чекбоксов и радиогрупп. Это очень удобно когда вы вычисляете подходящую стоимость &lt;a href=&quot;http://voronezh.irr.ru/real-estate/apartments-sale/&quot;&gt;квартиры в Воронеже&lt;/a&gt;, запчастей для вашего автомобиля или стоимость всех деталей пластикового окна. Было только одно нестандартное условие: скрипт должен был не только складывать все значения, а универсально рассчитывать результат от поля к полю. Пример: значение поля 1 умножаем на значение поля 2 и затем делим это на значение поля 3. Звучит просто, если заранее знать последовательность, но я её не знал, точнее знал, что последовательность может варьироваться. В итоге родился скрипт, считающий значения полей по формуле (формулам) и позволяющий переключаться с одной формулы на другую. Реализовал я это так:&lt;br&gt;&lt;ol&gt;&lt;li&gt;Создаем нужное нам количество полей. Например 3. Присваиваем к каждому полю (или обсчитываемому элементу, коим может быть радио, чекбокс и селекты, как единичные так и мультиплайные) класс &apos;calculon&apos; чтобы при клике по полю результат каждый раз рассчитывался заново. этого можно и не делать если вы хотите рассчитывать результат исключительно нажатием на кнопку а не realtime. Затем к каждому полю присваиваем уникальный id, к примеру f1, f2, f3.&lt;/li&gt;&lt;li&gt;В скрипте создаем переменную formula1, которая у нас будет ...</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Один клиент заказал у меня простой скрипт расчета стоимости услуг для своего сайта, попросту говоря калькулятор, складывающий значения выбранных строк в различных списках, а так же значения чекбоксов и радиогрупп. Это очень удобно когда вы вычисляете подходящую стоимость &lt;a href=&quot;http://voronezh.irr.ru/real-estate/apartments-sale/&quot;&gt;квартиры в Воронеже&lt;/a&gt;, запчастей для вашего автомобиля или стоимость всех деталей пластикового окна. Было только одно нестандартное условие: скрипт должен был не только складывать все значения, а универсально рассчитывать результат от поля к полю. Пример: значение поля 1 умножаем на значение поля 2 и затем делим это на значение поля 3. Звучит просто, если заранее знать последовательность, но я её не знал, точнее знал, что последовательность может варьироваться. В итоге родился скрипт, считающий значения полей по формуле (формулам) и позволяющий переключаться с одной формулы на другую. Реализовал я это так:&lt;br&gt;&lt;ol&gt;&lt;li&gt;Создаем нужное нам количество полей. Например 3. Присваиваем к каждому полю (или обсчитываемому элементу, коим может быть радио, чекбокс и селекты, как единичные так и мультиплайные) класс &apos;calculon&apos; чтобы при клике по полю результат каждый раз рассчитывался заново. этого можно и не делать если вы хотите рассчитывать результат исключительно нажатием на кнопку а не realtime. Затем к каждому полю присваиваем уникальный id, к примеру f1, f2, f3.&lt;/li&gt;&lt;li&gt;В скрипте создаем переменную formula1, которая у нас будет содержать вот такую формулу: &lt;b&gt;&apos;([f1]+[f2])*[f3]&apos;&lt;/b&gt; что означает &apos;сумму первого и второго полей умножить на значение третьего поля&apos;. В квадратных скобках пишутся id полей. В одной формуле может использоваться неограниченное количество одних и тех же полей, а так же дополнительных величин. Пример: &lt;b&gt;&apos;125-([f1]*([f2]-[f1]))/45-[f3]&apos;&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Далее мы выбираем, какая формула обсчитывается по умолчанию. Для этого в строчке count(***) заменяем звездочки на название нашей переменной с формулой. &lt;br&gt;&lt;/li&gt;&lt;li&gt;Для того чтобы во время работы страницы поменять формулу расчета - нужно просто ещё раз выполнить count() с нужным названием формулы. Например это можно сделать с помощью кнопки и события onclick.&lt;/li&gt;&lt;/ol&gt;Вот такие вот дела. Скрипт совсем простой. Получая в качестве параметра формулу, скрипт сначала получает значения всех нужных полей а затем заменяет id полей в формуле полученными значениями и рассчитывает результат. &lt;br&gt;&lt;br&gt;Вот демо скрипта: &lt;a href=&quot;http://studioad.ru/_fr/0/count.html&quot;&gt;Расчет стоимости услуг по формуле.&lt;/a&gt;&lt;br&gt;&lt;br&gt;А вот полный код примера для тех, кому лень скачивать демку.&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;!DOCTYPE html&amp;gt; &lt;br&gt; &lt;html&amp;gt; &lt;br&gt; &lt;head&amp;gt; &lt;br&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt; &lt;br&gt; &lt;title&amp;gt;Калькулятор&lt;/title&amp;gt; &lt;br&gt; &lt;style&amp;gt; &lt;br&gt; body{margin:20px;font:11px Tahoma;color:#777;} &lt;br&gt; div{padding:5px;border:1px solid #ddd;background:#eee;margin:2px;width:400px;} &lt;br&gt; &lt;/style&amp;gt; &lt;br&gt; &lt;/head&amp;gt; &lt;br&gt; &lt;body&amp;gt; &lt;br&gt; &lt;div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Работа с чекбоксом:&lt;br&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input class=&apos;calculon&apos; id=&apos;f1&apos; type=&quot;checkbox&quot; value=&quot;400.55555&quot;&amp;gt; &lt;br&gt; &lt;/div&amp;gt; &lt;br&gt;&lt;br&gt; &lt;div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Работа с &quot;радио&quot;:&lt;br&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input class=&apos;calculon&apos; id=&apos;f2&apos; name=&quot;Group1&quot; type=&quot;radio&quot; value=&quot;0&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input class=&apos;calculon&apos; id=&apos;f3&apos; name=&quot;Group1&quot; type=&quot;radio&quot; value=&quot;300&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input class=&apos;calculon&apos; id=&apos;f4&apos; name=&quot;Group1&quot; type=&quot;radio&quot; value=&quot;500&quot;&amp;gt; &lt;br&gt; &lt;/div&amp;gt; &lt;br&gt;&lt;br&gt; &lt;div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Работа с многострочным списком:&lt;br&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;select class=&apos;calculon&apos; id=&apos;f5&apos; size=&quot;5&quot; multiple=&quot;multiple&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;0&apos;&amp;gt;0&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;100&apos;&amp;gt;100&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;200&apos;&amp;gt;200&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;300&apos;&amp;gt;300&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;400&apos;&amp;gt;400&lt;/option&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/select&amp;gt; &lt;br&gt; &lt;/div&amp;gt; &lt;br&gt;&lt;br&gt; &lt;div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Работа с многострочным списком:&lt;br&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;select class=&apos;calculon&apos; id=&apos;f6&apos;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;0&apos;&amp;gt;0&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;100&apos;&amp;gt;100&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;200&apos;&amp;gt;200&lt;/option&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;300&apos;&amp;gt;300&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;option value=&apos;400&apos;&amp;gt;400&lt;/option&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/select&amp;gt; &lt;br&gt; &lt;/div&amp;gt; &lt;br&gt; &lt;div&amp;gt;&lt;input value=&apos;считать по формуле 1&apos; type=&quot;button&quot; onclick=&apos;count(formula1)&apos;&amp;gt;&lt;input value=&apos;считать по формуле 2&apos; type=&quot;button&quot; onclick=&apos;count(formula2)&apos;&amp;gt;&lt;/div&amp;gt; &lt;br&gt; &lt;div id=&apos;calculon&apos;&amp;gt;0&lt;/div&amp;gt; &lt;br&gt;&lt;br&gt; &lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt; if(!Number.prototype.toFixed){ &lt;br&gt;&amp;nbsp;&amp;nbsp;Number.prototype.toFixed=function(e){ &lt;br&gt;&amp;nbsp;&amp;nbsp;var y=Math.round(this*Math.pow(10,e))/Math.pow(10,e); &lt;br&gt;&amp;nbsp;&amp;nbsp;var i=e-y.toString().length+y.toString().indexOf(&apos;.&apos;)+1; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(e&amp;gt;0){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(y.toString().indexOf(&apos;.&apos;)&lt;0)return y+&apos;.&apos;+Math.pow(10,e).toString().substring(1); &lt;br&gt;&amp;nbsp;&amp;nbsp;else if(i&amp;gt;0)return y+Math.pow(10,i).toString().substring(1); &lt;br&gt;&amp;nbsp;&amp;nbsp;else return y; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;else return y; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; } &lt;br&gt; var formula1 = &apos;[f1]*([f2]+[f3]+[f4])+[f5]-[f6]/10&apos;; &lt;br&gt; var formula2 = &apos;[f1]*([f2]+[f3]+[f4])+[f5]-[f6]/30&apos;; &lt;br&gt; count(formula1); &lt;br&gt;&lt;br&gt; //Сам скрипт &lt;br&gt; function count(f){form=f;calculon();} &lt;br&gt; var elems = document.getElementsByTagName(&apos;*&apos;); &lt;br&gt; for(var i=0;i&lt;elems.length;i++){if(/(&amp;#92;^|&amp;#92;b)calculon(&amp;#92;$|&amp;#92;b)/.test(elems[i].className)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(elems[i].addEventListener){elems[i].addEventListener(&apos;click&apos;,calculon,false);}else &lt;br&gt;&amp;nbsp;&amp;nbsp;if(elems[i].attachEvent){elems[i].attachEvent(&apos;onclick&apos;,calculon)} &lt;br&gt;&amp;nbsp;&amp;nbsp;}} &lt;br&gt; function calculon(){ &lt;br&gt;&amp;nbsp;&amp;nbsp;result=false; &lt;br&gt;&amp;nbsp;&amp;nbsp;var els = form.match(/&amp;#92;[.+?&amp;#92;]/g); &lt;br&gt;&amp;nbsp;&amp;nbsp;for(var i=0;i&lt;els.length;i++){ &lt;br&gt;&amp;nbsp;&amp;nbsp;val=0; &lt;br&gt;&amp;nbsp;&amp;nbsp;var obj = document.getElementById(els[i].match(/&amp;#92;w+/)); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(obj.tagName==&apos;SELECT&apos;){ &lt;br&gt;&amp;nbsp;&amp;nbsp;for(var z=0;z&lt;obj.options.length;z++){ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(!obj.disabled&amp;amp;&amp;amp;obj.options[z].value&amp;amp;&amp;amp;obj.options[z].selected){val=val+parseFloat(obj.options[z].value)} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;}else{ &lt;br&gt;&amp;nbsp;&amp;nbsp;if(!obj.disabled&amp;amp;&amp;amp;obj.value&amp;amp;&amp;amp;obj.selected||obj.checked){val=val+parseFloat(obj.value)} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;result = result ? result.replace(els[i],val) : form.replace(els[i],val); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;document.getElementById(&apos;calculon&apos;).innerHTML=eval(result).toFixed(2); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; &lt;/script&amp;gt; &lt;br&gt; &lt;/body&amp;gt; &lt;br&gt; &lt;/html&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Распространение скрипта разрешено клиентом, так что пользуйтесь =)&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-09-20-88</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-20-88</guid>
			<pubDate>Sat, 19 Sep 2009 20:42:49 GMT</pubDate>
		</item>
		<item>
			<title>Днюхас презент</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/41216097.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;Вот заимел вербариус. Нравится. Оригинально и удобно. Имхо.&lt;br&gt;&lt;br&gt;P.S. Вербариус: &apos;Десять минут шестого&apos;</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/41216097.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;Вот заимел вербариус. Нравится. Оригинально и удобно. Имхо.&lt;br&gt;&lt;br&gt;P.S. Вербариус: &apos;Десять минут шестого&apos;</content:encoded>
			<link>https://studioad.ru/blog/2009-09-12-87</link>
			<category>разное</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-09-12-87</guid>
			<pubDate>Sat, 12 Sep 2009 01:11:25 GMT</pubDate>
		</item>
		<item>
			<title>Клавогонки : правила объезда</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/31998.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Пришел. Увидел. Победил.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вчера узнал о замечательном проекте &lt;a rel=&apos;nofollow&apos; href=&quot;http://klavogonki.ru/&quot;&gt;Клавогонки.ру&lt;/a&gt;. Проект является тренажером скоропечатанья на клавиатуре и построен на базе &lt;a href=&quot;http://oldbk.com&quot;&gt;online игры&lt;/a&gt; в гонки. Вчера я начал там играть (читай &quot;учиться&quot;) и был доволен своими растущими результатами. Но затем черт меня дернул заглянуть в код страницы и задуматься о возможности взлома рейтнгов и статистики....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/31998.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Пришел. Увидел. Победил.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вчера узнал о замечательном проекте &lt;a rel=&apos;nofollow&apos; href=&quot;http://klavogonki.ru/&quot;&gt;Клавогонки.ру&lt;/a&gt;. Проект является тренажером скоропечатанья на клавиатуре и построен на базе &lt;a href=&quot;http://oldbk.com&quot;&gt;online игры&lt;/a&gt; в гонки. Вчера я начал там играть (читай &quot;учиться&quot;) и был доволен своими растущими результатами. Но затем черт меня дернул заглянуть в код страницы и задуматься о возможности взлома рейтнгов и статистики.$CUT$&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Сегодня я сел и написал скрипт, симулирующий набор текста в игре следующим образом: я мог нажимать на клавиатуре любую клавишу, в то время как скрипт вставлял в поле ввода нужную букву из текста задания. В итоге скорость набора сводилась к тому, с какой быстротой я мог барабанить по клавишам. Скрипт написан всего за 20 минут и состоит из 5 строчек. Меж тем он умеет правильно собирать и отфильтровывать текст задания. (Это необходимо, так как текст задания защищен несколькими способами). Но как только я прошел один из тестов со скоростью, превышающей 500 знаков в минуту, меня попросили пройти тест, для подтверждения того что я, это я, а не робот. В тесте необходимо было набрать текст с картинки за ограниченное количество времени (со средней скоростью 400 зн/м). Этот тест задержал меня ещё на 10 минут, пока я искал онлайновый сервис программы по распознаванию текстов с изображений. В итоге времени, установленного в тесте хватило на то, чтобы распознать и отправить текст, то есть пройти тест. Отныне я мог сохранять&lt;br&gt;любые свои результаты без прохождения этого проверочного теста повторно.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Очень быстро я занял первое место во всех скоростных рейтингах сайта - за день и за неделю. Я установил, что максимальная скорость на юзербаре, выдаваемом на сайте - 999 знаков в минуту. Вот мой юзербар:&lt;div class=&quot;images&quot;&gt;&lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/89294.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; А вот скриншот общей статистикой (мой ник - Aleko):&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/08291.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Скрипт я выкладывать не буду, так как проект действительно хорош и это может пошатнуть его работу. Насчет других возможных путей накрутки скорости я не проверял. Вот так то.</content:encoded>
			<link>https://studioad.ru/blog/2009-08-27-86</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-27-86</guid>
			<pubDate>Thu, 27 Aug 2009 19:40:42 GMT</pubDate>
		</item>
		<item>
			<title>Как добавить свой сайт в DMOZ</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/24319.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dmoz это достаточно известный каталог сайтов. Наравне с яндекс каталогом, топами рамблера и мэйла, он занимает верхние строчки по популярности для сеошников и сео систем оценки сайта. &lt;a href=&quot;http://site001.ru/prodvijenie/&quot;&gt;Оптимизация и продвижение сайта&lt;/a&gt; часто не мыслимы без попадания в dmoz. Но попасть в него не так просто, и на это есть несколько причин: незнание английского языка, не желание читать то, что написано в правилах добавления ну и плохой проект или сайт. Данную статью я пишу специально для тех кто не попал в dmoz....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/24319.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dmoz это достаточно известный каталог сайтов. Наравне с яндекс каталогом, топами рамблера и мэйла, он занимает верхние строчки по популярности для сеошников и сео систем оценки сайта. &lt;a href=&quot;http://site001.ru/prodvijenie/&quot;&gt;Оптимизация и продвижение сайта&lt;/a&gt; часто не мыслимы без попадания в dmoz. Но попасть в него не так просто, и на это есть несколько причин: незнание английского языка, не желание читать то, что написано в правилах добавления ну и плохой проект или сайт. Данную статью я пишу специально для тех кто не попал в dmoz.$CUT$&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Итак, вы хотите добавить свой сайт в каталог Dmoz. Следуйте инструкции и у вас всё получится.&lt;br&gt;&lt;br&gt;1. Многие застревают пытаясь добавить свой сайт в общий топ Dmoz, а меж тем туда принимаются только англоязычные сайты. Это первый подводный камень. Так как у вас скорее всего русскоязычный сайт, открывайте &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.dmoz.org/&quot;&gt;главную страницу Dmoz&lt;/a&gt;&amp;nbsp; и внизу выбирайте в разделе World русский языковой раздел.&lt;br&gt;&lt;br&gt;2. Теперь нам необходимо &lt;u&gt;правильно&lt;/u&gt; выбрать категорию, в которой будет размещен сайт. Это достаточно важно и не всегда просто, как могло бы показаться. Dmoz организован таким образом, что категорию можно подобрать для любого сайта самой необычной направленности. Зайдите в категорию, в которой по вашему мнению должен располагаться ваш сайт. Вот пример категории в которой зарегистрировался я: &lt;b&gt;Top: World: Russian: Компьютеры: Интернет: Дизайн и разработка сайтов: Дизайнеры: Независимые &lt;/b&gt;. Достаточно много разделов, правда? &lt;br&gt;&lt;br&gt;3. Когда вы оказались в нужной категории, нажмите в правом верхнем углу ссылку &quot;предложить URL&quot;. Вы попадете на страницу с регистрационной формой на русском языке. При заполнении формы внимательно читайте рекомендации по заполнению - это может быть важно.&lt;br&gt;&lt;br&gt;4. Заполнив анкету нажмите кнопку &quot;Отправить&quot; и ждите подтверждения добавления сайта в своем электропочтовом ящике. &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Рассмотрение сайта в каталоге может занимать достаточно большой отрезок времени. Если вы получите подтверждение добавления сайта через месяц - считайте что вам повезло, и вас быстро приняли. Так же в каталог сайтов не принимают сайты с эротическим содержанием, сайты нарушающие закон, незавершенные проекты ну и вообще сайты, которые этого не заслуживают. Подробнее о правилах приема в каталог можно почитать на странице с инструкциями: &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.dmoz.org/add.html&quot;&gt;Dmoz submission policies and instructions&lt;/a&gt; (на английском языке). Надеюсь, статья окажется полезной.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-27-85</link>
			<category>сео, оптимизация и продвижение</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-27-85</guid>
			<pubDate>Thu, 27 Aug 2009 14:37:03 GMT</pubDate>
		</item>
		<item>
			<title>Page Scroller : Прокрутка по новому</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/74438.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ещё один скрипт под систему uCoz. Работа, основанная на идее с &lt;a href=&quot;http://karaboz.ru/2007/11/19/paginator-3000-postranichnaya-navigaciya-budushhego/&quot;&gt;Karaboz.ru&lt;/a&gt; , представляет из себя усовершенствованный вид нумерации страниц, который особенно полезен для порталов. Скрипт полностью кроссбраузерен - работает и выглядит одинаково во всех версиях IE, начиная с 5.5, а так же во всех современных браузерах. Занимает в 2 раза меньше места чем скрипт автора идеи, а в сжатом виде - в 6 раз меньше. Автоматически обрабатывает и заменяет стандартные переключатели страниц боксового вида на сайтах юкоз. Скрипт не протестирован во всех модулях! Модули, в которых скрипт проверен: блог, новости, гостевая книга, комментарии....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/74438.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ещё один скрипт под систему uCoz. Работа, основанная на идее с &lt;a href=&quot;http://karaboz.ru/2007/11/19/paginator-3000-postranichnaya-navigaciya-budushhego/&quot;&gt;Karaboz.ru&lt;/a&gt; , представляет из себя усовершенствованный вид нумерации страниц, который особенно полезен для порталов. Скрипт полностью кроссбраузерен - работает и выглядит одинаково во всех версиях IE, начиная с 5.5, а так же во всех современных браузерах. Занимает в 2 раза меньше места чем скрипт автора идеи, а в сжатом виде - в 6 раз меньше. Автоматически обрабатывает и заменяет стандартные переключатели страниц боксового вида на сайтах юкоз. Скрипт не протестирован во всех модулях! Модули, в которых скрипт проверен: блог, новости, гостевая книга, комментарии.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Скрипт отображает нумерацию страниц в виде горизонтального списка страниц и скроллбара с обозначением текущего местонахождения пользователя. Ниже скрипт может выводить общее число страниц (опционально). При вызове скрипта можно настроить количество ячеек с номерами страниц, которые скрипт будет отображать одновременно, обычно это 6 - 10. Если количество страниц меньше установленного - скроллбар автоматически скроется с экрана.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Перемещение по списку номеров страниц происходит с помощью перетаскивания мышкой самого скроллбара со стрелкой (опционально)(ширина бара рассчитывается в зависимости от соотношения общего числа страниц и числа страниц отображенных в данный момент), или перемещение может быть осуществлено щелчками по полосе скроллбара в любом месте. Так же, пока мышка находится над списком страниц или скроллбаром, вы можете использовать колесико для перемещения по списку.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я рассмотрю установку скрипта для блога в системе uCoz. Для ого чтобы установить скрипт в блог, повторите нижеописанные действие на странице редактирования шаблона &quot;Главная страница дневника&quot; и на странице редактирования шаблона &quot;Страница архива материалов&quot;. Скопируйте приведенный ниже код и вставьте его после условного кода $BODY$. Код для вставки:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;style&amp;gt; &lt;br&gt; #pageScroll span {white-space:nowrap} &lt;br&gt;#pageScroll a{display:inline-block;font:12px Tahoma;width:38px;padding:2px 0;margin:1px;color:#88aa00;text-align:center;text-decoration:none;} &lt;br&gt;#pageScroll a:hover, .curPage{background:#88aa00;color:#fff !important;} &lt;br&gt; #pageScroll {margin:0 auto;overflow:hidden;position:relative;top:-3px;cursor:default} &lt;br&gt; .scrollWrap {background:#dfdfdf;position:relative} &lt;br&gt; .scrollBar {background:#777;cursor:pointer;cursor:hand;position:relative;z-index:400} &lt;br&gt; .scrollPage {background:#88aa00;position:absolute;z-index:300;} &lt;br&gt; .pagesTotal {font:12px Tahoma;color:#bbb} &lt;br&gt; #pagesBlock1, .pagesBlock1, .pagesBlockuz1 {display:none !important;} &lt;br&gt; &lt;/style&amp;gt; &lt;br&gt; &lt;div id=&quot;pageScroll&quot;&amp;gt;&lt;span id=&quot;content&quot;&amp;gt;&lt;/span&amp;gt;&lt;/div&amp;gt; &lt;br&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;http://studioad.ru/PageScroller.js?v2&quot;&amp;gt;&lt;/script&amp;gt; &lt;br&gt; &lt;script&amp;gt;initScrolls(5/*количество страниц по ширине*/,5/*высота бара*/,false/*простая прокрутка*/,true/*стрелка*/,true/*всего страниц*/,7/*минимальная ширина бара*/,&apos;Всего страниц : [NUM]&apos;)&lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Цвета в css стилях можно свободно изменять. Отступы тоже можно изменить, но этого делать не рекомендуется. Если вы хотите изменить некоторые скриптовые опции, например запретить отображение стрелочки над скроллбаром или общего числа страниц внизу - измените соответствующие значение, следуя комментариям. Они отмечены в скрипте. Все вопросы по установке данного скрипта можно задать здесь, или на &lt;a href=&quot;http://studioad.ru/forum/18-122-1&quot;&gt;форуме&lt;/a&gt;.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;br&gt;&lt;br&gt;&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Кролики-самоубийцы с NetLore.ru:
&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/KyKB1DSl1IY&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/KyKB1DSl1IY&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-25-83</link>
			<category>система uсoz</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-25-83</guid>
			<pubDate>Tue, 25 Aug 2009 15:10:41 GMT</pubDate>
		</item>
		<item>
			<title>Форум : renovacio</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/22000.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот и пришло время оживить &lt;a href=&quot;http://studioad.ru/forum&quot;&gt;форум&lt;/a&gt;. Жду жаждущих флудить =). Надеюсь регистраций в ближайшее время будет много. Удачи в общении.&lt;br&gt;&lt;br&gt;По существу: на форуме по прежнему будут публиковаться уроки и материалы по фотошопу и вообще по графике. Но на этот раз так же больше внимания будет уделено скриптам и вообще вебу. Будут развиваться разделы о css, верстке, гипертексе. Очень надеюсь, что форум послужит посетителям на славу!...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/22000.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот и пришло время оживить &lt;a href=&quot;http://studioad.ru/forum&quot;&gt;форум&lt;/a&gt;. Жду жаждущих флудить =). Надеюсь регистраций в ближайшее время будет много. Удачи в общении.&lt;br&gt;&lt;br&gt;По существу: на форуме по прежнему будут публиковаться уроки и материалы по фотошопу и вообще по графике. Но на этот раз так же больше внимания будет уделено скриптам и вообще вебу. Будут развиваться разделы о css, верстке, гипертексе. Очень надеюсь, что форум послужит посетителям на славу!$CUT$&lt;br&gt;&lt;br&gt;Форум уже создан, настроен и работает.&lt;br&gt;&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;br&gt;&lt;br&gt;&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Хочу представить на ваш суд один из моих любимых роликов в стие stop-motion:
&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/2_HXUhShhmY&amp;amp;hl=ru&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/2_HXUhShhmY&amp;amp;hl=ru&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;470&quot; height=&quot;340&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-14-82</link>
			<category>студия ad</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-14-82</guid>
			<pubDate>Fri, 14 Aug 2009 03:01:03 GMT</pubDate>
		</item>
		<item>
			<title>Домены в целом и в конкретике : .РУ сегодня</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/06794.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Данная статья будет полезна новоиспеченным администраторам кириллических доменов вида IDN.IDN в зонах &lt;b&gt;.орг&lt;/b&gt; , &lt;b&gt;.ком&lt;/b&gt; , &lt;b&gt;.ру&lt;/b&gt; и &lt;b&gt;.нет&lt;/b&gt; , а так же полезна всем интернет юзверям в плане общего развития....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/06794.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Данная статья будет полезна новоиспеченным администраторам кириллических доменов вида IDN.IDN в зонах &lt;b&gt;.орг&lt;/b&gt; , &lt;b&gt;.ком&lt;/b&gt; , &lt;b&gt;.ру&lt;/b&gt; и &lt;b&gt;.нет&lt;/b&gt; , а так же полезна всем интернет юзверям в плане общего развития.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Недавно я зарегистрировал интересный с точки зрения звучания и краткости кириллический домен &lt;b&gt;блог.ру&lt;/b&gt; , после чего естественно озаботился получением информации о кириллических доменах сегодня. В результате моих изысканий были найдены интересные факты, о которых я и хочу вам поведать.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Начнем с истоков, а именно с того, что же такое домен и кто его учредил. Это поможет нам лучше представить процесс, в ходе которого сложилась текущая обстановка на рынке доменов.&lt;br&gt;&lt;br&gt;&lt;b&gt;Домен королевский и домен сетевой&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В древности доменами называли обширные королевские владения - леса поля, реки, деревни и поселения крестьян. Королевский домен обеспечивал существование королевского двора и был важнейшим и ценнейшим ресурсом. Те времена прошли, настало время развития сетей интернет, но домены по прежнему обозначают владения своего хозяина, на этот раз - виртуальные.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Домен - символьный способ адресации сайтов&lt;/i&gt;, &lt;i&gt;может содержать только буквы латиницы, цифры и дефис. Был изобретен американским ученым Полом Мокапетрисом и разработан исключительно для удобства пользователей.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;Основное значение домена - заменить IP адресацию сайтов на более простую для восприятия символьную адресацию.&lt;br&gt;&lt;br&gt;&lt;b&gt;Система DNS или как это работает&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Теоретически домен должен преобразоваться в IP адрес, по которому пользователь в итоге и связывается с интересующим его сайтом. Сие преобразование осуществляет &lt;a href=&quot;http://ru.wikipedia.org/wiki/DNS&quot;&gt;DNS или Domain Name System - Система Доменных Имен&lt;/a&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Работу DNS в масштабах всего интернета обеспечивает распределенная система из многих серверов, которые образуют собственную иерархию. Каждый сервер DNS имеет свою зону ответственности, закрепленный участок адресного пространства, в котором этот сервер определяет соответствие IP адресов и доменных имен. Среди всех серверов DNS есть самые важные - корневые серверы системы, обеспечивающие всё работу DNS, всего их 13. Корневые сервера это не отдельные 13 компьютеров. Каждый из них представляет из себя систему из многих компьютеров, способных обработать колоссальное количество запросов одновременно.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В упрощенном виде работа DNS происходит так: когда пользователь вводит адрес какого либо сайта, компьютер связывается с тем или иным известным ему сервером DNS и запрашивает информацию по введенному домену, а сервер, сверяясь со своими реестрами либо присылает искомый IP адрес, либо делает аналогичный запрос к вышестоящему DNS серверу. И так далее.&lt;br&gt;&lt;br&gt;&lt;b&gt;Из чего состоит домен, доменные зоны&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Домены могут состоять из нескольких уровней. Нулевой уровень домена - простая точка. Этот уровень уже давно не указывается по умолчанию. Но вы легко можете проверить мои слова пройдя к примеру по адресу &lt;a href=&quot;http://yandex.ru.&quot;&gt;Yandex.ru.&lt;/a&gt; . Далее cправа налево, через точку, записываются более высокие уровни. Так &lt;b&gt;Yandex.ru&lt;/b&gt; - домен второго уровня, а &lt;b&gt;www.Yandex.ru&lt;/b&gt; - домен третьего уровня.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Становясь администратором домена вы так же становитесь администратором всех возрастающих уровней вашего домена, то есть всем его адресным пространством. К примеру, администрируя домен &lt;b&gt;Studioad.ru&lt;/b&gt;, я имею право регистрировать неограниченное количество доменов вида &lt;b&gt;level3.studioad.ru&lt;/b&gt; , &lt;b&gt;level4.level3.studioad.ru&lt;/b&gt; и так далее. Такие адреса принято называть поддоменами. Так же как обыватели&amp;nbsp; администрируют адресные пространства своих доменов, так и большие организации - регистраторы, администрируют адресные пространства первого уровня различных доменов, предоставляя услуги по аренде прав на администрирование доменов в своих зонах. Домен нельзя купить. Его можно только арендовать на какой либо срок.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В интернете огромное количество доменов. Основное значение имеют домены первого уровня, например &lt;b&gt;RU&lt;/b&gt; . Домены первого уровня подразделяются на национальные домены, то есть домены, принадлежащие государствам, например &lt;b&gt;RU, SU, TT, TM&lt;/b&gt;, и домены общего значения, например &lt;b&gt;COM, ORG, NET, BIZ.&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Вот &lt;a href=&quot;http://www.rb.ru/inform/72087.html&quot;&gt;список существующих ныне доменов общего назначения&lt;/a&gt;. А вот &lt;a href=&quot;http://www.rb.ru/inform/72097.html&quot;&gt;список всех национальных доменов&lt;/a&gt;.&lt;br&gt;&lt;b&gt;&lt;br&gt;Кто управляет адресным пространство интернета?&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Кто же владеет 13 главными корневыми серверами? В настоящий момент во главе иерархии DNS серверов стоит копорация &lt;a href=&quot;http://ru.wikipedia.org/wiki/ICANN&quot;&gt;ICANN (от английского Internet Corporation of Assigned Names and Numbers)&lt;/a&gt;, что означает &quot;Интернет Корпорация по Распределяемым Именам и Числам&quot;. В ведении этой организации находятся не только домены но и IP адреса. ICANN не работает с отдельными пользователями, а устанавливает глобальную политику адресации. Специальная комиссия ICANN решает к примеру, какие новые домены первого уровня стоит вводить. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICANN - государственное учреждение США и подконтрольна Министерству Торговли. ICANN не имеет силы в странах за пределами США. По этому ICANN скорее &lt;i&gt;советует и рекомендует&lt;/i&gt;, чем устанавливает законы и правила. А другие участники сети с рекомендациями &lt;i&gt;соглашаются&lt;/i&gt;. Это некий вид общественного договора. Если бы не одно но - главная кнопка всё таки находится у ICANN. Тем не менее это организация зарекомендовала себя как очень осторожную в плане решения (скорее избегания) конфликтов. Это один из ключевых моментов в формировании текущей доменной ситуации.&lt;br&gt;&lt;br&gt;&lt;b&gt;Эволюция DNS : IDN и TDN&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Время шло и появилась идея создания доменов с использованием национальных алфавитов различных стран (такие домены получили название IDN, что означает &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Internationalized Domain Name&lt;/span&gt; или Интернационализированное Доменное Имя), а не только на латинице (привычные всем домены на латинице называются TDN, что расшифровывается как Traditional Domain Name или Традиционное Доменное Имя). Но переписывание существующей системы адресации DNS неминуемо привело бы к общему краху всего интернета в силу своей сложности, ведь интернет не имеет центрального управления, это - сеть сетей.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для обхода данной неприятности была разработана технология, в соответствии с которой, все IDN домены кодировались с помощью разрешенных в TDN символов и начинались с префикса &lt;b&gt;xn--&lt;/b&gt;, а работу по данному преобразованию должны были взять на себя браузеры пользователей. Таким образом DNS технология оставалась прежней.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В начале была создана поддержка доменов вида IDN.TDN , то есть национальных на половину - зоны первого уровня оставались латинскими. Затем ICANN начала вводить новые доменные зоны первого уровня на национальных языках. Эти домены уже имели вид IDN.IDN и полную поддержку новой технологии.&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Так плавно мы и пришли к моменту, когда России пророчится официальный (одобренный ICANN) национальный домен &lt;b&gt;РФ&lt;/b&gt;, с уже созданными неофициальными IDN зонами творится беспросветный кошмар и неразбериха. &lt;br&gt;&lt;br&gt;&lt;b&gt;Кириллические домены в России&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; О создании кириллических доменов в России впервые заговорили ещё в 90 годах двадцатого века. Так как ICANN как всегда была очень осторожна и не торопилась с вводом новых технологий, стали создаваться и разрабатываться альтернативные, не поддерживаемые браузерами, &quot;серые&quot; системы DNS без поддержки ICANN. Благодаря тому в 2000 году силами одной компании &quot;РегТайм&quot; были введены и начали принимать регистрации четыре новые доменные зоны верхнего уровня - &lt;b&gt;РУ&lt;/b&gt;, &lt;b&gt;КОМ&lt;/b&gt;, &lt;b&gt;НЕТ&lt;/b&gt; и &lt;b&gt;ОРГ&lt;/b&gt;.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Подобный маневр вероятно был произведен с расчетом на то, что к тому времени, как ICANN задумалась бы над назначением доменов для России, надавить на неё и, мотивирую большим количеством уже зарегистрированных имен в серых зонах, требовать признать домены официально. Расчет был в принципе верен, если учесть осторожность и нелюбовь к конфликтам в ICANN. Если бы не... &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В 2006-2007 году активно стоял вопрос о русификации доменного пространства в России. Две стороны конфликта представляли владельцы доменной зоны &lt;b&gt;РУ&lt;/b&gt; и приверженцы частичной русификации уже привычного нам домена &lt;b&gt;RU&lt;/b&gt;. Руководство ICANN не внесло ясность в решение конфликта, предложив сторонам самостоятельно искать выход из сложившейся ситуации. Решение найденное внутри страны оказалось неожиданным: Координационный центр постановил отказаться от введения кириллических доменов в зоне &lt;b&gt;RU&lt;/b&gt;. Но и доменная зона &lt;b&gt;РУ&lt;/b&gt; оказалась за бортом. Вместо этого была введена третья сторона - создаваемая новая зона &lt;a href=&quot;http://ru.wikipedia.org/wiki/.%D1%80%D1%84&quot;&gt;&lt;b&gt;РФ&lt;/b&gt;&lt;/a&gt;, на этот раз подразумевающая официальное признание ICANN. В данный момент, после длительной разработки и подготовки, делегирование официального домена &lt;b&gt;РФ&lt;/b&gt; назначено на конец октября этого (2009) года.&lt;br&gt;&lt;br&gt;&lt;b&gt;Судьба РУ&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Тут бы мне и расстроится. Ведь получается, что зарегистрированный мной, столь прекрасный домен оплачен совершенно зря - ведь поддержка зоны &lt;b&gt;РУ&lt;/b&gt; не предполагается, а следовательно и работать она не будет.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Но я стал копать дальше и выкопал на просторах интернета следующую информацию. Вот цитата из интервью:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;i&gt;&lt;strong&gt;- Почему .РУ пришлось превратиться в трехбуквенный домен .РУС?&lt;/strong&gt;&lt;/i&gt;&lt;br&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - В Париже нами были проведены активные консультации с руководством ICANN, комитетами ccNSO и gNSO по перспективам получившего популярность в России кириллического домена .РУ.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; С целью прекращения развития дискуссии по выбору написания кириллического кантри-кода России, со стороны ICANN было высказано предложение о миграции кириллической зоны .РУ в разряд доменов общего пользования с возможной заменой строки TLD. В результате консультаций было принято решение подавать заявку на кириллический домен общего пользования .РУС. &lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В продолжении интервью (&lt;a href=&quot;http://telnews.ru/Fedor_Smirnov/c39811&quot;&gt;вы можете прочесть его здесь полностью&lt;/a&gt;) выясняется, что у России через пару лет может появится вторая кириллическа зона, на этот раз общего назначения. Это и будет зона &lt;b&gt;РУС&lt;/b&gt;. А все зарегистрированные имена в зоне РУ будут автоматически перемешены в зону РУС. После этой новости, весьма правдоподобной на мой взгляд, я воспрянул духом.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;В отличие от зоны РУ у владельцев доменов в зонах НЕТ, ОРГ и КОМ судя по всему нет шансов.&lt;/i&gt; Вот так то.&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;br&gt;&lt;br&gt;&lt;/h1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Сегодня темой десерта станет отличный ролик о борьбе с финансовым кризисом. Прозьба не воспринимать серьёзно. Смотрим:&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;560&quot; height=&quot;340&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/yrTTLSKofFo&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;rel=0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/yrTTLSKofFo&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;470&quot; height=&quot;340&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-12-81</link>
			<category>world wide web</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-12-81</guid>
			<pubDate>Wed, 12 Aug 2009 00:56:38 GMT</pubDate>
		</item>
		<item>
			<title>Js RegExp на жизненных примерах</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/17396.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Регулярные выражения, regular expressions, RegExp, как хотите, это мощный инструмент поиска чего либо в строке данных. Наличие этого инструмента в языке Javascript очень важно. К примеру, многие мои скрипты были бы не мыслимы без использования регулярных выражений!...</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/17396.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Регулярные выражения, regular expressions, RegExp, как хотите, это мощный инструмент поиска чего либо в строке данных. Наличие этого инструмента в языке Javascript очень важно. К примеру, многие мои скрипты были бы не мыслимы без использования регулярных выражений!$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Я не буду рассказывать подробно о значении каждого знака в регулярном выражении. Для этого достаточно ознакомится с множеством литературы по этой теме:&lt;br&gt;&lt;br&gt;http://ru.wikipedia.org/wiki/Regexp - викистраничка о регекспах&lt;br&gt;http://www.softtime.ru/article/index.php?id_article=42 - ещё статья&lt;br&gt;http://experiment.net.ru/js2/?f=regexp.htm - большая кошерная статья&lt;br&gt;http://javascript.ru/basic/regular-expression - отличная вводная статья&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В своей же статье я опишу принципы использования регулярных выражений на примерах &quot;из жизни&quot;. На мой взгляд это как раз то, чего в сети и не хватает.&lt;br&gt;&lt;br&gt;&lt;b&gt;Регулярное выражение для определения формата файла&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Часто бывает нужно определить, ссылку на что мы получили. С помощью регулярного выражения это достаточно легко сделать&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var url = &quot;http://studioad.ru/image.png&quot;; &lt;br&gt; var format = url.match(/&amp;#92;.(&amp;#92;w+)($|#|&amp;#92;?)/)[1]; // получаем png&lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;br&gt;&lt;b&gt;Регулярное выражение для проверки e-mail адреса&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Чтобы узнать, правильно ли пользователь ввел адрес электронной почты, можно использовать следующее выражение:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var mail = &quot;admin@studioad.ru&quot;; &lt;br&gt; var check = /^[a-zA-Z0-9-_]+@([a-zA-Z0-9-_]+?&amp;#92;.)+&amp;#92;w+/.test(mail); // получаем true &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Это выражение поддерживает адреса с поддоменами, подчеркивания и тире.&lt;br&gt;&lt;br&gt;&lt;b&gt;Регулярное выражение для создания BB кодов&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для того
чтобы при обработке, например комментария, заменить сиволы так
называемого BB кода на его html аналог так же используется регулярное
выражение такого плана:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var str = &quot;Это строка комментария с [b]жирным[/b] выделением&quot;; &lt;br&gt; var message = str.replace(/&amp;#92;[(.+?)&amp;#92;](.+?)&amp;#92;[&amp;#92;/&amp;#92;1&amp;#92;]/g,&apos;&lt;$1&amp;gt;$2&lt;/$1&amp;gt;&apos;);&lt;br&gt;// в итоге получим &quot;с &lt;b&amp;gt;жирным&lt;/b&amp;gt; выделением&quot; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Это выражение сработает только в том случае, если будет найден открывающий и закрывающий теги кода.&lt;b&gt;&lt;br&gt;&lt;br&gt;Разделение строки на массив по нескольким знакам&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Иногда бывает нужно разделить строку на массив не по одному знаку а по нескольким разным. Это можно сделать так:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt;&lt;br&gt;var str = &apos;one,two three!four^five&apos;;&lt;br&gt;var mass = str.split(/,| |!|&amp;#92;^/);&lt;br&gt;mass[0]; // выдаст one&lt;br&gt;mass[3]; // выдаст four&lt;br&gt;&lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;b&gt;&lt;br&gt;Резка длинных слов, чтобы предотвратить деформацию блока с текстом&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; На форумах, в гостевых книгах и блогах можно часто встретить посты, содержащие какие либо длинные слова, которые, растягивая блоки в которых находятся, зачастую портят весь вид страницы. Для того чтобы этого не произошло, можно воспользоваться вот таким выражением. Оно разрежет слова длиннее 15 знаков:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var str = &quot;Ааааааааааааааааааааааааааааааааааа&quot;; &lt;br&gt; var message = str.replace(/(&amp;#92;S{15}[^$])/g,&apos;$1&amp;#92;n&apos;);&lt;br&gt;/* &lt;br&gt;В итоге получим&lt;br&gt;Ааааааааааааааа&lt;br&gt;ааааааааааааааа&lt;br&gt;ааааа&lt;br&gt;&amp;nbsp;*/ &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;Удаление пробелов в начале и конце строки, trim RegExp&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Часто необходимое и меж тем очень простое регулярное выражение, которое удалит все пробелы в начале и конце полученной строки:&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var str = &quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;- лишние пробелы -&amp;gt; &amp;nbsp;&amp;nbsp; &quot;; &lt;br&gt; var clearstr = str.match(/^&amp;#92;s*(.*?)&amp;#92;s*$/i)[1];&lt;br&gt;// в итоге получим &quot;&lt;- лишние пробелы -&amp;gt;&quot; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;Также удалится табуляция и переносы строк если они стоят в начале или в конце.&lt;br&gt;&lt;br&gt;&lt;b&gt;Удаление переноса строки&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Это выражение удалит все переносы строк:&lt;!--uzcode--&gt;
&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;script&amp;gt; &lt;br&gt; var str = &quot;Текст с&amp;#92;r переносами&amp;#92;n строк&quot;; &lt;br&gt; var clearstr = str.replace(/&amp;#92;r|&amp;#92;n/g,&apos;&apos;);&lt;br&gt;// в итоге получим &quot;Текст с переносами строк&quot; &lt;br&gt; &lt;/script&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Так же хочу поделиться удобной бесплатной программкой для составления регулярных выражений. Cкачиваем и пользуемся: &lt;a href=&quot;http://studioad.ru/diff/RegExTracer.rar&quot; target=&quot;_blank&quot;&gt;RegExTracer&lt;/a&gt;.
&lt;h1 class=&quot;title&quot;&gt;&lt;br&gt;ВИДЕОДЕСЕРТ&lt;br&gt;&lt;br&gt;&lt;/h1&gt;Я решил прилогать к каждому посту интересное с моей точки зрения видео с просторов интернета. Сегодня это ролик под названием &quot;Знаете ли вы?&quot;.&lt;div class=&quot;images&quot;&gt;&lt;object width=&quot;480&quot; height=&quot;295&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/5jVmCAstgoI&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;rel=0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/5jVmCAstgoI&amp;amp;hl=ru&amp;amp;fs=1&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;470&quot; height=&quot;330&quot;&gt;&lt;/object&gt;&lt;/div&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-04-80</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-04-80</guid>
			<pubDate>Tue, 04 Aug 2009 16:51:38 GMT</pubDate>
		</item>
		<item>
			<title>IE Tester : Все ослы в одном загоне</title>
			<description>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/19675.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После моего двухнедельного отсутствия я решил возобновить своё блоговедение с чего ни будь полезного для Вас, мои читатели. Первое, что мне бросилось в глаза, когда я включил компьютер сегодня, был ярко желтый значок программы IE Tester на моем рабочем столе. А так как многие мои читатели являются начинающими сайто-строителями и могут не знать об этом инструменте, я решил написать о нем сегодняшнюю статью....</description>
			<content:encoded>&lt;div class=&quot;images&quot;&gt;&lt;!--IMG1--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/19675.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; После моего двухнедельного отсутствия я решил возобновить своё блоговедение с чего ни будь полезного для Вас, мои читатели. Первое, что мне бросилось в глаза, когда я включил компьютер сегодня, был ярко желтый значок программы IE Tester на моем рабочем столе. А так как многие мои читатели являются начинающими сайто-строителями и могут не знать об этом инструменте, я решил написать о нем сегодняшнюю статью.$CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&lt;b&gt;Internet Explorer - бич и кара вебмастеров&lt;/b&gt;&quot; - с этим изречением трудно спорить. Сегодня этот браузер умудряется существовать и развиваться попирая разнообразные веб стандарты направо и налево. При чем каждая его версия имеет собственный &quot;нрав&quot;, который тоже необходимо учитывать. И если вы хороший вебмастер, то для вас это должно быть ясно. Но как же проверить и отладить сайт в нескольких версия IE одновременно? Не переустанавливать же их каждый раз! Всё просто.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Специально для того, чтобы собрать все версии в одной упаковке, был разработан браузер (а скорее программа) под названием IE Tester. Программа эта абсолютно бесплатна и её свободно можно скачать на сайте изготовителя с вот этой странички: &lt;a href=&quot;http://www.my-debugbar.com/wiki/IETester/HomePage&quot;&gt;http://www.my-debugbar.com/wiki/IETester/HomePage&lt;/a&gt; .&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Последняя на данный момент версия этой программы позволяет просмотреть любую страницу сразу во всех версиях IE начиная с версии 5.5 и заканчивая восьмеркой. Так же, что мне очень понравилось, программа активно ругается на мельчайшие ошибки в javascript, что здорово помогает с отладкой.&lt;div class=&quot;images&quot;&gt;&lt;!--IMG2--&gt;&lt;img style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://studioad.ru/_bl/0/76180.jpg&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Интерфейс программы построен на базе интерфейса майкрософтовского офиса в стиле windows vista и обладает поддержкой русского языка. Особых дополнительных функций программа не имеет, да они там в принципе и не нужны. Тем не менее IE Tester, на мой взгляд, совершенно не заменим в арсенале успешного сайтовода.&lt;br&gt;</content:encoded>
			<link>https://studioad.ru/blog/2009-08-02-79</link>
			<category>сайтостроение, верстка и html</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-08-02-79</guid>
			<pubDate>Sun, 02 Aug 2009 14:54:35 GMT</pubDate>
		</item>
		<item>
			<title>Управление жестами мыши</title>
			<description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Написал маленькую библиотечку дополнительных событий для javascript. Всего новых событий 5. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Первая новинка - &lt;b&gt;mouseStop&lt;/b&gt; - событие, как это видно из названия, возникающее при остановке движения мыши. Считаю его очень полезным и нужным в быту. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее следуют достаточно интересный вариант отлова жестов мыши на странице, в данном случае отслеживание росчерков влево - &lt;b&gt;mouseMoveLeft&lt;/b&gt;, вправо - &lt;b&gt;mouseMoveRight&lt;/b&gt;, вверх - &lt;b&gt;mouseMoveUp&lt;/b&gt; и вниз - &lt;b&gt;mouseMoveDown&lt;/b&gt;. ...</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Написал маленькую библиотечку дополнительных событий для javascript. Всего новых событий 5. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Первая новинка - &lt;b&gt;mouseStop&lt;/b&gt; - событие, как это видно из названия, возникающее при остановке движения мыши. Считаю его очень полезным и нужным в быту. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Далее следуют достаточно интересный вариант отлова жестов мыши на странице, в данном случае отслеживание росчерков влево - &lt;b&gt;mouseMoveLeft&lt;/b&gt;, вправо - &lt;b&gt;mouseMoveRight&lt;/b&gt;, вверх - &lt;b&gt;mouseMoveUp&lt;/b&gt; и вниз - &lt;b&gt;mouseMoveDown&lt;/b&gt;. $CUT$&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; События возникают как только мышь пройдет в заданную сторону по прямой (относительно прямой) линии установленное количество пикселей. В каждый момен перемещения мыши в скрипте автоматически выщитывается 3 контрольные точки, через которые должен пройти курсор. Никакие элементы дополнительно не создаются.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Скрипт кроссбраузерен и работает как в IE так и в нормальных браузерах. Посмотреть пример его работы можно ниже. Если вы (не нажимая кнопки мыши) проведете курсором ровно снизу вверх примерно на 200 пикселей, то цвет фона изменится на синий, так же визуализируются и другие направления:&lt;div class=&quot;images&quot;&gt;&lt;iframe src=&quot;http://studioad.ru/diff/movements.html&quot; width=&quot;400&quot; frameborder=&quot;0&quot; height=&quot;300&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;А вот сам скрипт в сжатом состоянии. &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt;&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border: 1px inset ; overflow: auto; max-height: 200px;&quot;&gt;&lt;!--uzc--&gt;&lt;html&amp;gt; &lt;br&gt; &lt;head&amp;gt; &lt;br&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&amp;gt;&lt;title&amp;gt;Жесты мышкой&lt;/title&amp;gt;&lt;/head&amp;gt; &lt;br&gt; &lt;body&amp;gt; &lt;br&gt; &lt;script&amp;gt; &lt;br&gt; /* Сам скрипт */ &lt;br&gt; mouseMoveUp=function(a,b,c,d){moveCatch(a,b,0,-c,d)};mouseMoveDown=function(a,b,c,d){moveCatch(a,b,0,c,d)};mouseMoveLeft=function(a,b,c,d){moveCatch(a,b,-c,0,d)};mouseMoveRight=function(a,b,c,d){moveCatch(a,b,c,0,d)};mouseStop=function(a,b,c,d){moveCatch(a,b,0,0,0)};function moveCatch(b,c,x,y,d){var f,g,h,j,i,k,l,m,n,o,p,q,r,s;g=true;f=200;if(d&lt;20){d=20}if(/*@cc_on!@*/false){b.attachEvent(&apos;onmousemove&apos;,function(){t(window.event)})}else{b.addEventListener(&apos;mousemove&apos;,function(a){t(a)},false)}function t(e){if(x!=0||y!=0){if(g){g=false;k=e.clientX;l=e.clientY;m=k+x/2;o=k+x;n=l+y/2;p=l+y}q=e.clientX;r=e.clientY;if(!g&amp;amp;&amp;amp;q&lt;=m+d&amp;amp;&amp;amp;q&amp;gt;=m-d&amp;amp;&amp;amp;r&lt;=n+d&amp;amp;&amp;amp;r&amp;gt;=n-d){h=true}if(!g&amp;amp;&amp;amp;q&lt;=o+d&amp;amp;&amp;amp;q&amp;gt;=o-d&amp;amp;&amp;amp;r&lt;=p+d&amp;amp;&amp;amp;r&amp;gt;=p-d){j=true}if(!g&amp;amp;&amp;amp;h&amp;amp;&amp;amp;j){h=false;j=false;g=true;c()}}else{s=true}clearTimeout(i);i=setTimeout(function(){h=false;j=false;g=true;if(s){c()}},f)}}; &lt;br&gt;&lt;br&gt; /* Пример использования */ &lt;br&gt; mouseStop(document,function(){document.body.style.background=&apos;black&apos;}); &lt;br&gt; mouseMoveUp(document,function(){document.body.style.background=&apos;blue&apos;},200,30); &lt;br&gt; mouseMoveDown(document,function(){document.body.style.background=&apos;red&apos;},200,30); &lt;br&gt; mouseMoveLeft(document,function(){document.body.style.background=&apos;green&apos;},200,30); &lt;br&gt; mouseMoveRight(document,function(){document.body.style.background=&apos;yellow&apos;},200,30); &lt;br&gt; &lt;/script&amp;gt; &lt;br&gt; &lt;/body&amp;gt; &lt;br&gt; &lt;/html&amp;gt;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;В листинге наглядно показано, как создаются события. Жду комментариев.</content:encoded>
			<link>https://studioad.ru/blog/2009-07-15-78</link>
			<category>javascript</category>
			<dc:creator>Aleko</dc:creator>
			<guid>https://studioad.ru/blog/2009-07-15-78</guid>
			<pubDate>Wed, 15 Jul 2009 17:03:53 GMT</pubDate>
		</item>
	</channel>
</rss>