<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог маленького, но очень отважного программиста &#187; userfriendly</title>
	<atom:link href="http://xo66ut.ru/archives/tag/userfriendly/feed" rel="self" type="application/rss+xml" />
	<link>http://xo66ut.ru</link>
	<description>PHP, MySQL, Javascript, JQuery, ExtJS, UML, и другие интернетости...…</description>
	<lastBuildDate>Tue, 04 Oct 2011 08:40:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Запоминаем положение интерфейса средствами JavaScript</title>
		<link>http://xo66ut.ru/archives/526</link>
		<comments>http://xo66ut.ru/archives/526#comments</comments>
		<pubDate>Wed, 13 Oct 2010 06:46:03 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[userfriendly]]></category>
		<category><![CDATA[userinterface]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=526</guid>
		<description><![CDATA[
Очень важным моментом в интерфейсе сайта является сохранение его текущего положения, для того, чтобы после перезагрузки страницы, пользователю не пришлось заново повторять свои действия с настройкой интерфейса сайта под себя. Идеальным средством для хранения состояния пользовательского интерфейса является cookies. Всем известно как работать с куки с помощью серверных (backend) языков,  но зачастую проще это делать [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://xo66ut.ru/wp-content/uploads/2010/10/uisave.jpg"><img class="aligncenter size-full wp-image-530" style="border: 0pt none;" title="uisave" src="http://xo66ut.ru/wp-content/uploads/2010/10/uisave.jpg" alt="" width="496" height="146" /></a></p>
<p>Очень важным моментом в интерфейсе сайта является сохранение его текущего положения, для того, чтобы после перезагрузки страницы, пользователю не пришлось заново повторять свои действия с настройкой интерфейса сайта под себя. Идеальным средством для хранения состояния пользовательского интерфейса является cookies. Всем известно как работать с куки с помощью серверных (backend) языков,  но зачастую проще это делать напрямую из JavaScript. Конечно можно передавать данные интерфейса серверной части, а там уже сохранять их хоть в БД. Но как правило, если вы не разрабатывайте новый интерфейс для gmail, нет необходимости делать это для 5-6 параметров.</p>
<h2>JavaScript и Cookies.</h2>
<p>В JavaScript есть стандартные методы для работы с document.cookie, именно так происходит обращение к куки в JavaScript. Например функция для установки куки будет выглядеть следующим образом</p>
<pre class="brush: jscript;">
function setCookie(c_name,value,expiredays)
 {
        var exdate=new Date();
        exdate.setDate(exdate.getDate()+expiredays);
        document.cookie=c_name+ &quot;=&quot; +escape(value)+
        ((expiredays==null) ? &quot;&quot; : &quot;;expires=&quot;+exdate.toUTCString());
 }
</pre>
<p>Как вы видите не очень удобно, поэтому я и предпочитаю пользоваться JQuery плагинами, если конечно фреймворк в проекте уже присутствует, если нет, то подключать JQuery, только из-за работы с куки не рационально.  В принципе взяв <a href="http://www.w3schools.com/js/js_cookies.asp" target="_blank">готовые функции</a> для document.cookie или написав их самостоятельно, можно свести неудобства и количество кода к минимуму.</p>
<h2>Плагины cookies для JQuery.</h2>
<p>Если в вашем сайте уже используется JQuery, то наиболее простой способ наладить работу с cookies, это использовать плагин. Плагинов довольно много я обычно использую <a href="http://code.google.com/p/ezcookie/">ezCookie</a>. В плагине содержатся стандартные методы для работы с cookies &#8211; установка, чтение, удаление. На странице проекта есть детальное описание всех методов. Плагин ezCookie отличается от многих подобных автоматическим распознаванием значения установленной cookie, и, если это JSON данные, то функция автоматически возвращает JSON объект. Такой режим работы позволяет устанавливать subcookie, то есть множества пар имя:значение для одного cookie (для одной cookie переменной).</p>
<h2>Сохранение положения интерфейса.</h2>
<p>Давайте напишем небольшой пример, который позволит понять схему сохранения простых позиций интерфейса. Пусть у нас будет 5 разноцветных квадратов, которые по клику на кнопку &#8220;закрыть&#8221; закрываются, и текст на кнопке меняется на &#8220;открыть&#8221;. И при нажатии на кнопку &#8220;открыть&#8221; соответственно квадрат снова становится видимым.</p>
<p>Для этого воспользуемся стандартной JQuery функцией toggle (переключатель), которая в качестве аргументов принимает 2 функции, одна из которых срабатывает на четном щелчке мыши, другая на нечетном. Чтобы сохранить положение квадратов, мы в первой toggle функции будем устанавливать значение cookie в 0, а на второй функции в 1, ноль означает, что квадрат скрыт, а единица соответственно, что квадрат виден.</p>
<p>Здесь я использую функцию ezCookie <strong>$.setSubCookie</strong>, чтобы не увеличивать количество записей cookie. Так как структурно записи для каждого квадрата у нас равны, то все проще хранить в одной cookie с именем &#8220;ui_save&#8221;. В качестве дополнительных параметров метод <strong>$.setSubCookie</strong> позволяет установить время жизни cookies, но в данном случае используется время жизни по умолчанию.</p>
<p>Итак позицию интерфейса в зависимости от действий пользователя мы записали, теперь нам необходимо сделать так, чтобы после загрузки страницы интерфейс возвращался в записанное состояние. Для этого мы сначала считаем нашу куку функцией <strong>$.cookie(&#8220;ui_save&#8221;)</strong>, эта функция автоматически определяет какое значение установлено в куке и если это JSON, то она возвращает JSON объект, что в нашем случае и происходит. Далее для каждого квадрата мы проверяем значение и если оно равно нулю то вызываем событие click, которое установит нужное положение квадрата.</p>
<pre class="brush: jscript;">
	$(document).ready(function(){
		$(&quot;.close&quot;).toggle(
			function(){
				$(this).prev().slideUp(); //скрываем квадрат
				$(this).html(&quot;Открыть&quot;);
				var class_name = $(this).prev().attr(&quot;class&quot;);
//устанавливаем значение куки для конкретного квадрата в положение закрыть
				$.setSubCookie(&quot;ui_save&quot;, class_name, 0);
			},
			function(){
				$(this).prev().slideDown(); //разворачиваем квадрат
				$(this).html(&quot;Закрыть&quot;);
				var class_name = $(this).prev().attr(&quot;class&quot;);
//устанавливаем значение куки для конкретного квадрата в положение открыт
				$.setSubCookie(&quot;ui_save&quot;, class_name, 1);
			}
		);

		//Устанавливаем необходимую позицию интерфейса
		var ck = $.cookie(&quot;ui_save&quot;);
		for(key in ck){
			if(ck[key] == 0){
//вызываем событие &quot;закрыть&quot;
				$(&quot;.&quot; + key).next().trigger('click');
			}
		}

	});
</pre>
<p>То что получилось можно посмотреть <a href="http://xo66ut.ru/examples/uisave/ui_example.html">здесь</a>, после обновления страницы позиция интерфейса (закрытые, открытые квадраты) сохраняется.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=526&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/526/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Работаем с Font API от Google</title>
		<link>http://xo66ut.ru/archives/409</link>
		<comments>http://xo66ut.ru/archives/409#comments</comments>
		<pubDate>Fri, 28 May 2010 07:01:08 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Интересное в Сети]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[userfriendly]]></category>
		<category><![CDATA[WEB 3.0]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=409</guid>
		<description><![CDATA[
Предлагаю разобраться, что нового и революционного предложила компания Google касательно шрифтов и как этим воспользоваться прямо сейчас. Во первых, как и множество других проектов компании, Font API является бесплатным и нет никаких сложностей, почему бы не начать использовать этот инструмент прямо сейчас.
Введение.
В течение последних нескольких лет постоянно появлялись новые методы использования альтернативных шрифтов. Все чувствуют [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-418" title="google_font_api" src="http://xo66ut.ru/wp-content/uploads/2010/05/google_font_api.jpg" alt="" width="200" height="150" /></p>
<p>Предлагаю разобраться, что нового и революционного предложила компания Google касательно шрифтов и как этим воспользоваться прямо сейчас. Во первых, как и множество других проектов компании, Font API является бесплатным и нет никаких сложностей, почему бы не начать использовать этот инструмент прямо сейчас.<span id="more-409"></span></p>
<h2>Введение.</h2>
<p>В течение последних нескольких лет постоянно появлялись новые методы использования альтернативных шрифтов. Все чувствуют подъем дизайна и юзабилити в веб, развитие сервисов и облачных приложений, все это ведет за собой и увеличение требований к типографике. Ограничение стандартным набором шрифтов, мешает развитию веб-дизайна в расширяющемся в геометрической прогрессии вебе. Поэтому стали появляться такие платные сервисы как <strong>TypeKit </strong>и <strong>FontDeck</strong>. В будущем, наверное, будут пояляется и другие.</p>
<p>Однако если вы посмотрите на основные технологии веб HTML, CSS, Javascript, PHP, все они являются бесплатными. Исходя из этого можно предположить, что вебу нужен эффективный, а главное бесплатный инструмент. Поэтому, то что предлагает нам Google наиболее подходящее в настоящее время решение для развития типографики в веб.</p>
<h2>Меняет правило игры ?</h2>
<p>Очевидно, что когда Google берется за что-нибудь, он делает это хорошо и меняет представление об этой отрасли. Так и со шрифтам, компания незаметно для всех выпустила (совместно с <strong>Typekit</strong>) <strong>Font API</strong>, который в долгосрочной перспективе изменит веб. Пока другие компании придумывают бизнес модели для подобных  сервисов, Google просто выпустили качественный бесплатный продукт.</p>
<p>Давайте посмотрим как это все работает на небольшом примере<a href="http://designshack.co.uk/tutorialexamples/GoogleFonts/index.html" target="_blank"> live demo</a>:</p>
<h2>HTML</h2>
<h2>Добавляем шрифты в Google Fonts API.</h2>
<p>Теперь когда мы поняли, как же все это работает, давайте добавим своих шрифтов, для этого перейдем к <a href="http://code.google.com/apis/webfonts/" target="_blank">Font Api</a> и посмотрим на <a href="http://code.google.com/webfonts" target="_blank">Каталог Шрифтов</a>. Здесь вы увидите различных 18 шрифтов. Каждый шрифт имеет несколько вариантов. Когда вы выберите тот, который вам нравится, просто нажмите на него, чтобы увидеть дополнительные параметры. Допустим выберем<strong> IM Fell</strong>.</p>
<p style="text-align: center;"><img class="size-full wp-image-416 aligncenter" title="Google_Font_API-1" src="http://xo66ut.ru/wp-content/uploads/2010/05/Google_Font_API-1.jpg" alt="" width="510" height="408" /></p>
<p>Когда вы увидите картинку с описание шрифта, просто нажмите на кнопку Get Code и вы увидите html код который нужно вставить в head страницы, а также пример css, как использовать новый шрифт.</p>
<p><a href="http://xo66ut.ru/wp-content/uploads/2010/05/Google_Font_API-2.jpg"><img class="aligncenter size-full wp-image-417" title="Google_Font_API-2" src="http://xo66ut.ru/wp-content/uploads/2010/05/Google_Font_API-2.jpg" alt="" width="510" height="204" /></a></p>
<p>Есть два способа вставки шрифта на сайт. Через html и через css @import.</p>
<h2>Через HTML</h2>
<pre class="brush: xml;">
&lt;link href='http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica' rel='stylesheet' type='text/css'&gt;
</pre>
<h2>Через @import.</h2>
<pre class="brush: css;">
@import url(http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica);
</pre>
<p>Далее мы можем использовать на сайте подключенный шрифт:</p>
<pre class="brush: css;">
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;#headline h1 {
	text-align: center;
	font-size: 8em;
	color: #111;
	text-shadow: 0px 2px 3px #555;
	font-family: 'IM Fell DW Pica', arial, serif;
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Помимо этого, есть <strong>WebFont Loader</strong> инструмент, который представляет собой библиотеку <strong>Javascript</strong>, которая &#8220;дает вам больший контрль над шрифтом и позволяет использовать нескольких провайдеров для шрифтов&#8221; (в данном случае<strong> Font API</strong> &#8211; это провайдер шрифта, как и <strong>TypeKit</strong>) , это кстати их совместная разработка.</p>
<h2>Выводы.</h2>
<p>Наверное вы обратили внимание, насколько просто использование новых шрифтов с <strong>Google Font API</strong>. В отличие от существовавших до настоящего времени инструментов вам не нужно получать лицензию, которая прикрепляется к специально зарегистрированному доменному имени. Вы можете использовать шрифты даже в обычном примере, у вас на локальном компьютере.</p>
<p>Есть несколько преимуществ для выбора <strong>Google Font API</strong>, на которые стоит обратить внимание:</p>
<ul>
<li>Шрифт скачивается с сервера Google.</li>
<li>CDN Google быстрее чем ваш сайт.</li>
<li>От повсеместного использования шрифты будут кешироваться за счет того, что имеют одно расположение (сервер Google).</li>
</ul>
<p>Единственный видимый минус Font API, это небольшое количество шрифтов, но инструмент новый, и я думаю, количество доступных шрифтов будет со временем увеличиваться.</p>
<p>Источник: <a href="http://designshack.co.uk/articles/css/how-to-use-the-new-google-font-api" target="_blank">http://designshack.co.uk/</a></p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=409&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/409/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Динамическая загрузка файлов &#8211; AJAX Upload</title>
		<link>http://xo66ut.ru/archives/368</link>
		<comments>http://xo66ut.ru/archives/368#comments</comments>
		<pubDate>Fri, 30 Apr 2010 11:40:39 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[userfriendly]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=368</guid>
		<description><![CDATA[
В размышлениях об интерактивности задавался мыслью как сделать удобный с точки зрения usability загрузчик файлов.  Плюс подогревал интерес к механизму работы ajax загрузчика в ExtJS. Делая однажды чат и разобравшись в ограничениях браузеров, узнал, что нет возможности отправлять файл по средством объекта xmlhttprequest. Поэтому было непонятно, как ExtJS uploader отправляет файлы, как будто делает это [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xo66ut.ru/wp-content/uploads/2010/04/ajax_upload-e1272627550877.jpg"><img class="aligncenter size-full wp-image-376" title="ajax_upload" src="http://xo66ut.ru/wp-content/uploads/2010/04/ajax_upload-e1272627550877.jpg" alt="AJAX-Upload" width="543" height="282" /></a></p>
<p><a href="http://xo66ut.ru/wp-content/uploads/2010/04/ajax_upload-e1272627550877.jpg"></a>В размышлениях об интерактивности задавался мыслью как сделать удобный с точки зрения usability загрузчик файлов.  Плюс подогревал интерес к механизму работы <strong>ajax </strong>загрузчика в <strong>ExtJS</strong>. Делая однажды чат и разобравшись в ограничениях браузеров, узнал, что нет возможности отправлять файл по средством объекта <strong>xmlhttprequest</strong>. Поэтому было непонятно, как <strong>ExtJS </strong>uploader отправляет файлы, как будто делает это через <strong>ajax</strong>. Работая над созданием чата, я также ознакомиться с другими ограничениями браузеров, например на количество одновременных запросов к одному домену (ограничены двумя запросами), а также со всевозможными способами обхода этого ограничения. Там же для удобства применялся <strong>iframe </strong>транспорт, который позволяет отправлять обычные <strong>POST </strong>запросы через невидимый (0 px на 0 px) <strong>iframe</strong>. После этого мне сразу стал понятен механизм работы загрузчика файлов в <strong>ExtJS</strong>.<span id="more-368"></span></p>
<p>Решил добавить юзабильности в один из проектов и использовать этот способ для загрузки файлов, благо есть готовый плагин, называющийся <strong><a href="http://valums.com/ajax-upload/" target="_blank">AJAX Upload</a></strong>, хотя как я уже писал <strong>ajax </strong>тут не причем, все реализовано следующим образом:</p>
<ul>
<li> Плагин создает невидимый <strong>input </strong>над элементом, к которому вы привязываете нагрузку. То есть когда вы нажимаете на кнопку, появляется окно со стандартным выбором файла.</li>
<li>Затем когда вы выбираете файл плагин отправляет форму содержащую <strong>input </strong>с файлом через <strong>iframe</strong>.</li>
</ul>
<p><em>&#8220;Обычно для закачки файлов мы используем file input (&lt;input type=”file” /&gt;), его проблематично стилизовать. В современных веб приложениях этот input выглядит устаревшим. Можно конечно использовать для загрузки <strong>Flash</strong>, но <strong>Javascript </strong>прекрасно решает эту задачу. Плагин <strong>AJAX-Upload </strong>позволяет легко загружать несколько файлов без перезагрузки страницы. Он работает во всех браузерах и не требует никаких дополнительных библиотек для работы. К тому же он не затрагивает глобальных <strong>namespace</strong>&#8216;ов и прекрасно работает вместе с <strong>jQuery </strong>и <strong>Prototype</strong>.&#8221;</em></p>
<p>Работать с плагином довольно легко. Достаточно создать любой <strong>DOM </strong>элемент и привязать к нему плагин. Плагин отправляет файлы в виде обычного <strong>POST </strong>запроса. Поэтому можно обрабатывать их загрузку на любом серверном языке. На сайте плагина много работающий примеров. В плагине даже реализовано ограничение на расширения загружаемых файлов.</p>
<p>Распространяется плагин свободно под лицензией <strong>MIT</strong>.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=368&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/368/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Проблема с анимацией в JQuery</title>
		<link>http://xo66ut.ru/archives/358</link>
		<comments>http://xo66ut.ru/archives/358#comments</comments>
		<pubDate>Wed, 28 Apr 2010 12:21:35 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery animate]]></category>
		<category><![CDATA[userfriendly]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=358</guid>
		<description><![CDATA[Одной из главных особенностей JQuery является то, что эта библиотека позволяется вам легко подчеркнуть ваш дизайн, анимировав некоторые элементы. Речь идет об отображении элементов, их движении и изменении цветов. Первое часто используется для скрытия информации, такой например, как заголовки картинок, то есть по умолчанию они скрыты, а при наведении курсора они проявляются. Часто также этот [...]]]></description>
			<content:encoded><![CDATA[<p>Одной из главных особенностей JQuery является то, что эта библиотека позволяется вам легко подчеркнуть ваш дизайн, анимировав некоторые элементы. Речь идет об отображении элементов, их движении и изменении цветов. Первое часто используется для скрытия информации, такой например, как заголовки картинок, то есть по умолчанию они скрыты, а при наведении курсора они проявляются. Часто также этот эффект применяются для того чтобы показать информацию и рейтинг скриншота при наведении на него.<span id="more-358"></span></p>
<p>Есть частая проблема, точнее особенность JQuery, о которой часто забывают дизайнеры и разработчики, она заключается в том, что вся анимация на странице при вызове попадает в &#8220;стек&#8221;. Если у вас на странице есть множество элементов с анимацией, например фотографии в фотогаллерее, то когда пользователь быстро проведет по нескольким фотографиям и перестанет двигать мышью, он будет наблюдать как анимация появляется постепенно на каждом элементе. Наглядно эту проблему можно посмотреть на сайте <a href="http://druckbar.info/" target="_blank">druckbar</a>, если вы быстро проведете мышкой по четырем панелькам, то будете долго ждать пока в шапке появится соответствующие картинки.</p>
<p><a href="http://xo66ut.ru/wp-content/uploads/2010/04/jq_animate_stop.jpg"><img class="aligncenter size-full wp-image-364" title="jq_animate_stop" src="http://xo66ut.ru/wp-content/uploads/2010/04/jq_animate_stop.jpg" alt="Using JQuery animate stop" width="419" height="542" /></a></p>
<p>Вы можете решить эту проблему одним из следующих способ:</p>
<p>Использовать метод <strong>.stop(). </strong>Когда этот метод используется на элементе, он немедленно прекращает его анимацию, если конечно она есть. <strong> </strong></p>
<pre class="brush: jscript;">
$(&quot;ol#gallery li&quot;).hover(function () {
  $(&quot;.thumb-meta&quot;, this).stop().animate({ bottom: '0px' }, 400);
},
function () {
  $(&quot;.thumb-meta&quot;, this).stop().animate({ bottom: '-22px' }, 400);
});
</pre>
<p>Другой способ решить проблему со &#8220;стеком&#8221; анимации, это использовать плагины, например <a href="http://plugins.jquery.com/project/hoverIntent" target="_blank">hoverIntent</a>. Этот плагин делает анимацию доступной только, если пользователь двигает мышью достаточно медленно.</p>
<h2>Старайтесь не злоупотреблять с анимацией контента.</h2>
<p>Поскольку Javascript функции очень легко реализовать с помощью JQuery, многие увлекаются анимацией  и доставляют этим пользователю немало неудобств. Допустим, удобно использовать JQuery для подгрузки изображений по мере прокрутки текста, это позволяет быстро прогрузить страницу с множество картинок. Но зачем показывать эти изображения при помощи анимации ?! В этом нет никакаго смысла.</p>
<p>Поэтому, прежде чем анимировать, подумайте, не помещает ли анимация концентрации  пользователя на основном контенте. Анимация должна помогать пользователю, делать сайт более интерактивным, а не мешать ему работать с сайтом.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=358&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/358/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlashDevelop как замена Adobe Flash CS4</title>
		<link>http://xo66ut.ru/archives/187</link>
		<comments>http://xo66ut.ru/archives/187#comments</comments>
		<pubDate>Sun, 18 Apr 2010 11:02:28 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[userfriendly]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=187</guid>
		<description><![CDATA[Хотелось бы провести небольшой обзор интересного редактора FlashDevelop. Каждый работавший в Adobe Flash CS с ActionScript обращал внимание на неудобство работы с кодом в этом IDE, а так же отсутствие навигации по файлам проекта, да что там, на отсутствие вообще такого понятия, как проект. Возможно есть такие, кто сейчас скажет: &#8220;Серьезный проект, да тебе во [...]]]></description>
			<content:encoded><![CDATA[<p>Хотелось бы провести небольшой обзор интересного редактора <a href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a>. Каждый работавший в Adobe Flash CS с ActionScript обращал внимание на неудобство работы с кодом в этом IDE, а так же отсутствие навигации по файлам проекта, да что там, на отсутствие вообще такого понятия, как проект. Возможно есть такие, кто сейчас скажет: &#8220;Серьезный проект, да тебе во Flex&#8221;. С одной стороны не могу не согласиться, во Flex работы с проектами на уровне, да и плагин Flex к Eclipse очень хорош. Но работа с Flex, это работа в MXML. А что делать когда нет желания-умения-возможностей. Итак, если все выше написанное вам близко, вам под кат.<span id="more-187"></span></p>
<p>FlashDevelop это бесплатный OpenSource редактор распространяемый по лицензии MIT.</p>
<p>Он не является полной заменой Flash Builder. Имеет умное автодополнение при написание кода в ActionScript. Для установки FlashDevelop требуется Microsoft .NET 2.0 framework и JRE, который требуется для компиляции Flex и Flex Air приложений. При помощи haxe можно скомпилировать для платформ Flash, JavaScript, NekoVM, также можно скомпилировать бинарные исполняемые приложения для Linux и Windows. Для компиляции ActionScript 2 в состав дистрибутива включен MTASC.</p>
<p><img class="alignright" src="http://www.flashdevelop.org/wikidocs/images/fdwiki.png" alt="" width="135" height="135" />Основные возможности редактора:</p>
<ul>
<li>Подсветка кода</li>
<li>Продвинутый редактор фрагментов кода, а также большой набор этих фрагментов.</li>
<li>Интуитивная и понятная панель инструментов</li>
<li>Архитектура основанная на плагинах</li>
</ul>
<p>Но главное это возможности работы с Flash:</p>
<ul>
<li>Полноценная поддержка ActionScript2, ActionScript3 и (внимание!) <strong>MXML</strong>.</li>
<li>Автоматическая расстановка переносов и завершение тегов и функций.</li>
<li>Быстрая навигация по коду &#8211; переходы к объявлениям.</li>
<li>Интегрированный менеджер проектов, который фиксирует все прикрепленные (assets) файлы, свойства проекта, ну и конечно же рабочие файлы проекта</li>
<li>Настраиваемый интерфейс для AS2API и ASDocs (генераторов документации).</li>
</ul>
<p style="text-align: center;">
<div id="attachment_323" class="wp-caption aligncenter" style="width: 501px"><a href="http://xo66ut.ru/wp-content/uploads/2010/04/flashdevelop.jpg"><img class="size-full wp-image-323 " title="flashdevelop" src="http://xo66ut.ru/wp-content/uploads/2010/04/flashdevelop.jpg" alt="Скриншот программы." width="491" height="420" /></a><p class="wp-caption-text">Скриншот программы.</p></div>
<p><strong>Вывод</strong>: Если рассматривать редактор как альтернативу CS4 IDE, то преимущество очевидно, это:</p>
<ol>
<li>Бесплатное OpenSource приложение</li>
<li>Менеджер проектов</li>
<li>Удобство создания preloader,</li>
<li>Для кого-то не мало важно &#8211; генерация ASDocs</li>
</ol>
<p>Вы еще не пользуетесь ? Тогда мы идем к вам <img src='http://xo66ut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=187&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/187/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Переход от Dreamweaver к Expression Web 3</title>
		<link>http://xo66ut.ru/archives/301</link>
		<comments>http://xo66ut.ru/archives/301#comments</comments>
		<pubDate>Fri, 16 Apr 2010 09:34:43 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Программирование на PHP]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[userfriendly]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=301</guid>
		<description><![CDATA[Вспомнив что у меня имеется подписка на Microsoft продукты через dreamspark, решил посмотреть, что предлагает софтверный гигант для прототипирования интерфейсов. А наткнулся в итоге на интересную альтернативу Dreamweaver - Expression Web 3. Ее функционал  практически ничем не отличается от Dreamweaver CS3, но есть одно ключевое отличие. При первом открытии Expression Web 3 все основные возможности [...]]]></description>
			<content:encoded><![CDATA[<p>Вспомнив что у меня имеется подписка на Microsoft продукты через dreamspark, решил посмотреть, что предлагает софтверный гигант для прототипирования интерфейсов. А наткнулся в итоге на интересную альтернативу <strong>Dreamweaver </strong>- <strong>Expression Web 3</strong>. Ее функционал  практически ничем не отличается от <strong>Dreamweaver CS3</strong>, но есть одно ключевое отличие. При первом открытии <strong>Expression Web 3</strong> все основные возможности грамотно и аккуратно сосредоточены вокруг рабочей области, пользователь видит большинство функций, которые предоставляет IDE. В <strong>Dreamweaver </strong>же, я смог узнать, что у него есть аналогичные функции, только сравнивая их с <strong>Expression</strong>. Может конечно мне стоило сразу после установки сконфигурировать  <strong>Dreamweaver</strong>, чтобы удобно расположить в панелях необходимый мне функционал, но почему Adobe было не побеспокоится об этом ?  В целом же программы действительно идентичны. Единственное у меня всегда были проблемы в <strong>Dreamweaver </strong>со стандартными Javascript функциями, у <strong>Expression Web</strong> их нет.<span id="more-301"></span></p>
<p>Функции которыми я сразу начал пользоваться, хотя до этого не догадывался о существовании некоторых из них в <strong>Dreamweaver</strong>:</p>
<ul>
<li>Проверка CSS и HTML валидности на лету (В <strong>Dreamweaver </strong>по умолчанию отключена)</li>
<li>Удобное использование code snippets (В <strong>Dreamweaver </strong>по умолчанию отключена)</li>
<li>Тестирование во всех браузерах установленных в системе в одном окне, удобно сравнивать как выглядит сайт в различных браузерах (В <strong>Dreamweaver </strong>такой фукции я не видел, поправьте меня)</li>
<li>Code Hyperlink удобный переход к объявлению функции из ее вызова.</li>
<li>Панелька DOM структуры
<div class="wp-caption aligncenter" style="width: 308px"><img src="http://xo66ut.files.wordpress.com/2010/04/dom_panel.jpg" alt="Dom Panel" width="298" height="56" /><p class="wp-caption-text">Dom Panel</p></div></li>
</ul>
<p>Хотя я думаю, что я нашел еще не все функции этой IDE, уже сейчас я решил отказаться в ее пользу от <strong>Dreamweaver</strong>.<br />
Ну и напоследок скриншот самой программы</p>
<p><div class="wp-caption alignnone" style="width: 610px"><a href="http://xo66ut.files.wordpress.com/2010/04/ex_web_3.jpg"><img class=" " title="Expression Web 3" src="http://xo66ut.files.wordpress.com/2010/04/ex_web_3.jpg" alt="Expression Web 3" width="600" height="467" /></a><p class="wp-caption-text">Expression Web 3</p></div>
<p><strong>Вывод</strong>: благодаря грамотному userfriendly интерфейсу я перешел в <strong>Dreamweaver </strong>на <strong>Expression Web</strong>. Плюс MS за подачу аналогичного функционала в новом свете.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=301&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/301/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

