<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>33 коровы</title>
	
	<link>http://the33cows.com</link>
	<description>Всё должно быть сделано настолько простым, насколько это возможно, но не проще</description>
	<pubDate>Mon, 22 Jun 2009 08:32:10 +0000</pubDate>
	<generator>http://wordpress.org/</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/the33cows" type="application/rss+xml" /><item>
		<title>Производительность и Flex Component Kit</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/_XdxDn25dk0/</link>
		<comments>http://the33cows.com/flex/2009/06/22/productivity-and-flex-component-kit/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 08:32:10 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[ActionScript 3.0]]></category>

		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Skinning]]></category>

		<category><![CDATA[flex framework]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=334</guid>
		<description><![CDATA[Все наверное слышали и знают о Flex Component Kit для Flash CS3 и о том как его использовать его для скинования.
В кратце действия очень простые — вашим клипам которые вы желаете использовать в качестве скина данный экстеншин проставляет базовым классом mx.flash.UIMovieClip, который &#8220;почти как&#8221; UIComponent.
Штука хорошая, компоненты работают с ней хорошо, есть возможность задавать стейты [...]]]></description>
			<content:encoded><![CDATA[<p>Все наверное слышали и знают о <a href="https://www.adobe.com/cfusion/entitlement/index.cfm?e=flex_skins" target="_blank">Flex Component Kit</a> для Flash CS3 и о том как его использовать его для скинования.</p>
<p>В кратце действия очень простые — вашим клипам которые вы желаете использовать в качестве скина данный экстеншин проставляет базовым классом <a href="http://livedocs.adobe.com/flex/3/langref/mx/flash/UIMovieClip.html" target="_blank">mx.flash.UIMovieClip</a>, который &#8220;почти как&#8221; UIComponent.</p>
<p>Штука хорошая, компоненты работают с ней хорошо, есть возможность задавать стейты у скина как ключевые кадры у мувиклипа, но есть одно но. UIMovieClip имеет такой код:</p>
<pre>
<div class="codesnip-container" >public function UIMovieClip(){
            validateMeasuredSizeFlag = true;
            _measuredMinHeight = 0;
            _measuredMinWidth = 0;
...........
            super();
            addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
        }</div>
</pre>
<p>т.е. он всегда(!) подписан и слушает событие Event.ENTER_FRAME и метод обрабатывающий его довольно &#8220;большой&#8221;. А это уже прямое покушение на производительность — несколько таких скинов еще нормально, а вот сильно заскиновнное приложение может пострадать. На чем я и попался, выставил скин для редереров в чартинге.</p>
<p>Так что будте осторожны при использовании Flex Component Kit в скиновании.</p>
<p>Удачи!</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/_XdxDn25dk0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/flex/2009/06/22/productivity-and-flex-component-kit/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/flex/2009/06/22/productivity-and-flex-component-kit/</feedburner:origLink></item>
		<item>
		<title>Skyfire - мобильный браузер с поддержкой Flash 10!</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/Z9v5NcDcZZI/</link>
		<comments>http://the33cows.com/flex/2009/06/16/skyfire-mobile-browser-with-flash-10/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 15:18:24 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[3D]]></category>

		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Flash Player]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=332</guid>
		<description><![CDATA[Вышел Skyfire мобильный браузер с поддержкой большинства фич web 2.0
Browse your favorite websites on Skyfire exactly like you do on your PC. No compromises! We’re the only mobile browser to support all major Web 2.0 standards – Ajax, Javascript, Flash 10 – it just works.
И про Ajax, Javascript, Flash 10 они совершенно не врут я [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skyfire.com/ ">Вышел Skyfire</a> мобильный браузер с поддержкой большинства фич web 2.0</p>
<blockquote><p>Browse your favorite websites on Skyfire exactly like you do on your PC. No compromises! We’re the only mobile browser to support all major Web 2.0 standards – Ajax, Javascript, Flash 10 – it just works.</p></blockquote>
<p>И про Ajax, Javascript, Flash 10 они совершенно не врут я попробовал несколько сайтов писаных на ActionScript 3.0 для flashplayer9|10 и они работают! Работает видео, работают флекс приложения!</p>
<p>Я даже запустил демки <a href="http://www.alternativaplatform.com/en/alternativa3d/">Alternativa3d</a> ! и они идут.  Правда тормоза отличные )</p>
<p>Встретились и проблемы с позиционированием курсора (в некоторых случаях) если говорить о flash.</p>
<p>А так я считаю что это супер прорыв. Всем качать ставить на мобилки и смотреть!</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/Z9v5NcDcZZI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/flex/2009/06/16/skyfire-mobile-browser-with-flash-10/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/flex/2009/06/16/skyfire-mobile-browser-with-flash-10/</feedburner:origLink></item>
		<item>
		<title>Контрастный текст на фоне произвольного цвета</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/5P1fEzK1DYo/</link>
		<comments>http://the33cows.com/flex/2009/05/10/contrast-text-on-color-background/#comments</comments>
		<pubDate>Sun, 10 May 2009 18:11:15 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[ActionScript 2.0]]></category>

		<category><![CDATA[ActionScript 3.0]]></category>

		<category><![CDATA[Colors]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[flex framework]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=320</guid>
		<description><![CDATA[Недавно встала задача найти алгоритм как сделать контрастный текст на фоне произвольного цвета.
В начале я поэксперементировал с HSL и HSB представлением цвета. Для HSB я нашел алгорим на ActionScript 1, экспортнул его, но он оказался глючным. Поискав далее я нашел класс HSBColor от Adobe на ActionScript3. Его нет в 3 flexframework и как я понимаю [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно встала задача найти алгоритм как сделать контрастный текст на фоне произвольного цвета.</p>
<p>В начале я поэксперементировал с <a href="http://ru.wikipedia.org/wiki/HSL" rel="nofollow">HSL</a> и <a href="http://ru.wikipedia.org/wiki/HSB">HSB</a> представлением цвета. Для HSB я нашел алгорим на ActionScript 1, экспортнул его, но он оказался глючным. Поискав далее я нашел класс <a href="http://livedocs.adobe.com/flex/gumbo/langref/mx/utils/HSBColor.html"  rel="nofollow">HSBColor</a> от Adobe на ActionScript3. Его нет в 3 flexframework и как я понимаю это запчасть от Gumbo (Flex 4). Работает он хорошо, но не решает нужной мне задачи: в синих оттенках текст не контрастный.</p>
<p>Затем в чате UAFPUG  мне посоветовал <a href="http://blog.nicolasprof.com/">Nicolas Prof</a> <a href="http://theflashblog.com/?p=173">пример от Lee Brimelow</a>, пример работал отлично, но был написан на ActionScript 2 и использовал класс <a href="http://www.quasimondo.com/archives/000599.php" rel="nofollow">ColorMatrix от Quasimondo</a>. Я было уже совсем расстроился, но <a href="http://0xffffff.ru/temp">Татьяна Белая</a> быстренько портнула класс ColorMatrix на ActionScript 3.0 и вместе с ним пример.<br />
Я немного изменил пример, можно полистать, как по мне работает на отлично:</p>
<p><iframe src ="http://the33cows.com/examples/contrast-color/TestColor.html" width="650" height="300"></p>
<p>Your browser does not support iframes.</p>
<p></iframe></p>
<p><a href="http://the33cows.com/examples/contrast-color/TestColor.html">Пример контрастного текста отдельной страницей</a></p>
<p>Исходники по правой кнопке мыши или <a href="http://the33cows.com/examples/contrast-color/srcview/Test.zip">в архиве</a>.<br />
Удачи!</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/5P1fEzK1DYo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/flex/2009/05/10/contrast-text-on-color-background/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/flex/2009/05/10/contrast-text-on-color-background/</feedburner:origLink></item>
		<item>
		<title>UAFPUG 9, мой доклад о Eclipse Monkey</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/2GmiG_Me6TM/</link>
		<comments>http://the33cows.com/actionscript-30/2009/05/01/uafpug-9-eclipse-monkey-and-flex-builder/#comments</comments>
		<pubDate>Fri, 01 May 2009 17:23:52 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[ActionScript 3.0]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Eclipse Monkey]]></category>

		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Flex Builder 2]]></category>

		<category><![CDATA[Flex Builder 3]]></category>

		<category><![CDATA[Monkey Script]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=314</guid>
		<description><![CDATA[Непрошло и пол года как я подготовил исходники и написал пост о моем докладе на UAFPUG, который был 28 февраля, этого года.
Мой доклад назывался
&#8220;Eclipse Monkey — безграничный функционал Flex Builder&#8217;а.&#8221; как можно догадаться был посвещен прикручиванию Monkey скриптов к Flex Builder&#8217;у
В начале небольшая призентация:
Eclipse Monkey
View more presentations from ilja.panin.

По ходу призентации я приводил примеры использования [...]]]></description>
			<content:encoded><![CDATA[<p>Непрошло и пол года как я подготовил исходники и написал пост о моем докладе на UAFPUG, который был 28 февраля, этого года.</p>
<p>Мой доклад назывался<br />
&#8220;Eclipse Monkey — безграничный функционал Flex Builder&#8217;а.&#8221; как можно догадаться был посвещен прикручиванию Monkey скриптов к Flex Builder&#8217;у</p>
<p>В начале небольшая призентация:</p>
<div style="width:425px;text-align:left" id="__ss_1373531"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ilja.panin/eclipse-monkey?type=powerpoint" title="Eclipse Monkey">Eclipse Monkey</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=uafpugeclipsemonkey-090501115311-phpapp02&#038;stripped_title=eclipse-monkey" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=uafpugeclipsemonkey-090501115311-phpapp02&#038;stripped_title=eclipse-monkey" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ilja.panin">ilja.panin</a>.</div>
</div>
<p>По ходу призентации я приводил примеры использования скриптов. В правом углу некоторый слайдов есть метка <strong>E></strong> это означает, что вместе со слайдом был пример кода. Примеры скриптов лежать в <a href="http://the33cows.com/examples/eclipse-monkey-samples/monkey.rar">архиве</a> у меня или <a href="http://monkey-for-flex.googlecode.com/files/monkey.rar">в проекте monkey-for-flex</a> на гугл коде. Примеры простые и не очень :).</p>
<p>Непростой пример посвещен использованию модели кода Flex Builder в Monkey Eclipse. Пример лежит в файле create-interface.js Данный пример генерит методы и свойства которые объявлены в выбраном интерфейсе, используя модель кода Flex Builder. Чтобы получить код нужно выделить в коде имя интерфейса и нажать Alt+m и в консоле будет выведен код. Остаеться его только скопипастить. Данный пример не является эталоном работы с моделью кода Flex Builder, это лишь иллюстрация возможностей Eclipse Monkey.</p>
<p>Еще я хочу обратить ваше внимание на библиотечки, которые я написал для более удобной работы.<br />
Эти библиотеки лежат в папке com/the33cows/monkeylib</p>
<p>flexutil.js<br />
Содержит методы для работы с текстовыми редакторами, как обычными так и MXML и CSS редакторов Flex Builder (Получение редактора, добавление текста, перемещение курсора). Библиотека не доделана, но с базовыми вещами справляеться нормально. Приветствуется добавление своих методов и/или советов, критики <img src='http://the33cows.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>templateUtils.js<br />
Служит для работы с темплитами кода. В файл нужно прописать путь к каталогу где будут храниться файлы с темплитами</p>
<pre>
<div class="codesnip-container" >this.templateRoot = "< YourPathToTemplates >/templates/";</div>
</pre>
<p>использование до безобразия простое</p>
<pre>
<div class="codesnip-container" >include("com/the33cows/monkeylib/templateUtils.js");
...
var tmpl = getTemplate("public-method.tpl"); // загрузили темплит из файла
tmpl = tmpl.replace(/{comments}/g, coments); // заменяем переменные на значения</div>
</pre>
<p>переменная tmpl содержит строку с кодом, дальше с можно поступать как угодно.</p>
<p>Если есть каки-то вопросы, задавайте. Если есть какие-то пожелания, делитесь) Удачи.</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/2GmiG_Me6TM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/actionscript-30/2009/05/01/uafpug-9-eclipse-monkey-and-flex-builder/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/actionscript-30/2009/05/01/uafpug-9-eclipse-monkey-and-flex-builder/</feedburner:origLink></item>
		<item>
		<title>Командная строка и пользователи</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/tZxZ7uRpZGg/</link>
		<comments>http://the33cows.com/effective-work/2009/05/01/comand-line-and-users/#comments</comments>
		<pubDate>Fri, 01 May 2009 16:32:20 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Mаразмы нашего городка]]></category>

		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=310</guid>
		<description><![CDATA[Я не люблю командную строку, это зло. Вернее не люблю программы/утилиты с которые работают только из командной строки.  Я считаю, что нормальная программа должна предоставлять нормальный UI для работы с ней или хотя бы с большиством ее возможностей. К тому же UI должен быть интуитивно понятный.
В современно мире, количество информации растет очень быстро и [...]]]></description>
			<content:encoded><![CDATA[<p>Я не люблю командную строку, это зло. Вернее не люблю программы/утилиты с которые работают только из командной строки.  Я считаю, что нормальная программа должна предоставлять нормальный UI для работы с ней или хотя бы с большиством ее возможностей. К тому же UI должен быть интуитивно понятный.</p>
<p>В современно мире, количество информации растет очень быстро и человек (т.е. Я) не может запомнить все. Да и порой не нужно просто запоминать всякие вещи которые будут использованы единожды (или настолько редко, что смысла запоминать нет). Поэтому понятный UI должен решать эту проблему &#8220;Запустил и все понятно&#8221;, но это утопия этого, к сожалению, никогда не будет, тем более в мире опенсурса. А очень жаль.</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/tZxZ7uRpZGg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/effective-work/2009/05/01/comand-line-and-users/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/effective-work/2009/05/01/comand-line-and-users/</feedburner:origLink></item>
		<item>
		<title>Eclipse Monkey и редакторы Flex Builder</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/i67QhbA2WyM/</link>
		<comments>http://the33cows.com/mxml/2009/04/16/eclipse-monkey-and-flexbuilder-editors/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 07:39:05 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Eclipse Monkey]]></category>

		<category><![CDATA[Flex Builder 3]]></category>

		<category><![CDATA[Monkey Script]]></category>

		<category><![CDATA[mxml]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=304</guid>
		<description><![CDATA[Работа с mxml и css редактором отличается от работы с обычным редактором который нам предоставляет Eclipse Monkey. Чтобы получить доступ к любому редактору я использую такой метод

loadBundle("com.adobe.flexbuilder.editors.common");
/**
 * @return current text editor or null
 * @see org.eclipse.ui.editors.text.TextEditor
 */
this.getCurrentTextEditor = function()
{
	var editor = window.getActivePage().getActiveEditor();
	if (editor)
	{
		if (editor.getClass().getName() == "com.adobe.flexbuilder.editors.mxml.MXMLEditor"
			&#124;&#124; editor.getClass().getName() == "com.adobe.flexbuilder.editors.css.CSSEditor")
		{
			editor = editor.getCodeEditor();
		}
		/*
		//TODO add others editors [...]]]></description>
			<content:encoded><![CDATA[<p>Работа с mxml и css редактором отличается от работы с обычным редактором который нам предоставляет Eclipse Monkey. Чтобы получить доступ к любому редактору я использую такой метод</p>
<pre>
<div class="codesnip-container" >loadBundle("com.adobe.flexbuilder.editors.common");
/**
 * @return current text editor or null
 * @see org.eclipse.ui.editors.text.TextEditor
 */
this.getCurrentTextEditor = function()
{
	var editor = window.getActivePage().getActiveEditor();
	if (editor)
	{
		if (editor.getClass().getName() == "com.adobe.flexbuilder.editors.mxml.MXMLEditor"
			|| editor.getClass().getName() == "com.adobe.flexbuilder.editors.css.CSSEditor")
		{
			editor = editor.getCodeEditor();
		}
		/*
		//TODO add others editors that
		else if (){}

		*/
	}
	return editor;
}</div>
</pre>
<p>Данный метод отдает ссылку на инстанс класса наследованого от org.eclipse.ui.editors.text.TextEditor, вернее даже на инстанс, который реализует<br />
<a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/editors/text/package-tree.html">org.eclipse.ui.editors.ITextEditor</a></p>
<p>дальше работаем обычными для эклипса методами:</p>
<pre>
<div class="codesnip-container" >this.TextSelection = Packages.org.eclipse.jface.text.TextSelection;

this.insertToCursor = function(editor, text, moveCursor)
{
	if (editor)
	{
		var documentProvider = editor.getDocumentProvider();
		var doc = documentProvider.getDocument(editor.getEditorInput());
		var offset = editor.getSelectionProvider().getSelection().getOffset();

		doc.replace(offset, 0,  text);

		if (moveCursor)
		{
			var selection = new TextSelection(doc, offset+text.length, 0);
			editor.getSelectionProvider().setSelection(selection);
		}
	}
}</div>
</pre>
<p>Метод вставляет текст в позицию курсора и если выставлен флаг, перемещает курсор в конец вставленного текста.</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/i67QhbA2WyM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/mxml/2009/04/16/eclipse-monkey-and-flexbuilder-editors/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/mxml/2009/04/16/eclipse-monkey-and-flexbuilder-editors/</feedburner:origLink></item>
		<item>
		<title>Вышел Silverlight 3 Beta</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/CaCCf57K8tg/</link>
		<comments>http://the33cows.com/actionscript-30/2009/03/19/silverlight-3-beta/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 08:16:46 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[ActionScript 3.0]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[mxml]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=302</guid>
		<description><![CDATA[Потихоньку, между делом, вышел Silverlight 3 Beta. Список появившихся фич просто впечатляет. Краткий перечень.

Support for Higher Quality Video &#38; Audio. New and enhanced media features in Silverlight 3 include:

Live and on-demand true HD (720p+) Smooth Streaming.
More format choice.
True HD playback in full-screen.
Extensible media format support.
Industry leading content protection.


Empowering Richer Experiences.  Additional features include:

Perspective 3D Graphics.
Pixel [...]]]></description>
			<content:encoded><![CDATA[<p>Потихоньку, между делом, вышел <a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank">Silverlight 3 Beta</a>. Список появившихся фич просто впечатляет. Краткий перечень.</p>
<ul>
<li>Support for Higher Quality Video &amp; Audio. New and enhanced media features in Silverlight 3 include:
<ul>
<li>Live and on-demand true HD (720p+) Smooth Streaming.</li>
<li>More format choice.</li>
<li>True HD playback in full-screen.</li>
<li>Extensible media format support.</li>
<li>Industry leading content protection.</li>
</ul>
</li>
<li>Empowering Richer Experiences.  Additional features include:
<ul>
<li>Perspective 3D Graphics.</li>
<li>Pixel Shader effects.</li>
<li>Bitmap Caching.</li>
<li>New Bitmap API.</li>
<li>Themed application support.</li>
<li>Animation Effects. .</li>
<li>Enhanced control skinning.</li>
<li>Improved text rendering &amp; font support.</li>
</ul>
</li>
<li>Improving Rich Internet Application Productivity. New features include:
<ul>
<li>60+ controls with source code</li>
<li>Deep Linking.</li>
<li>Search Engine Optimization (SEO).</li>
<li>Enhanced Data Support Silverlight 3 delivers:
<ul>
<li>Element to Element binding</li>
<li>Data Forms.</li>
<li>New features for data validation</li>
<li>Support for business objects.</li>
</ul>
</li>
<li>Improved performance, through:
<ul>
<li>Application library caching.</li>
<li>Enhanced Deep Zoom.</li>
<li>Binary XML .</li>
<li>Local Connection .</li>
</ul>
</li>
</ul>
</li>
<li>Advanced Accessibility Features. .</li>
<li>
<ul>
<li>Life outside the browser.</li>
<li>Desktop shortcuts and start menu support.</li>
<li>Safe and secure..</li>
<li>Smooth installation. .</li>
<li>Auto-update. .</li>
<li>Internet connectivity detection. .</li>
</ul>
</li>
<li><strong>Out of Browser Capabilities.</strong></li>
</ul>
<p>Также обновился <strong>Expression Blend 3:</strong></p>
<p><strong>New Features in Expression Blend 3:</strong> The designer-developer workflow took another major step forward today with major innovations in Expression Blend 3 including: SketchFlow, a rapid prototyping capability that makes it easy to communicate design intent to stakeholders; design time sample data that enables the design and testing of applications without access to live data; direct import of Adobe Photoshop and Illustrator files; behaviors, extensible and reusable components that add interactivity to applications without writing code; a full code editor supporting C#, VB and XAML; and many more features that support an improved design and development experience. Features include:</p>
<ul>
<li><strong>SketchFlow.</strong> SketchFlow introduces a new set of features designed to make it easier for you to experiment with dynamic user experiences and create compelling prototypes. SketchFlow also helps communicate design ideas to other stakeholders, and makes it easier to collect in-context annotated feedback. SketchFlow enables the navigation and composition of an application to be modeled in a very visual manner from a simple prototype that uses a series of sketches, to something much more evolved. A prototype can be made as real and interactive as it needs to be to communicate design intent and SketchFlow can leverage all the existing features of Expression Blend.</li>
<li><strong>Adobe Photoshop and Illustrator import.</strong> The powerful importers for both Adobe Photoshop and Adobe Illustrator enable smooth integration with workflows the designer already has in place. The designer has freedom to view and import Photoshop files layer by layer. Layers can be easily regrouped and elements retain their original formats; layers, layer positions, editable text and vectors remain available for editing within Expression Blend.</li>
<li><strong>Behaviors</strong>. Add interactivity to your application, without having to write code. Behaviors can encapsulate complex design interactions into reusable components which can be directly applied to a user interface element in the application. Developers have access to a rich API that they can use to write their own triggers, actions, and behaviors for use in their Silverlight and WPF projects.</li>
<li><strong>Sample data.</strong> Design time sample data makes it easy to build data-connected applications without access to live data. You can generate sample data or import sample data from an XML file and is available to controls on the artboard at design-time. You can extensively customize your sample data details, and you can easily switch between using sample data and using live data at run-time.</li>
<li><strong>Improved design and development experience.</strong> Expression Blend 3 includes many features that improve the overall design experience including a brand new design surface making Blend more accessible to visual designers. Team Foundation Server support allows easier integration of the Blend user into Team System. Improved animation and easing functions, 3D transforms, visual effects and an improved visual state manager enable a great tooling experience.</li>
</ul>
<p>Я это все к чему, ребята из макрософт очень постарались и если они будут двигаться такими темпами то Flex потеряет свою популярность и мы останемся без штанов :). Придет армия дотнетчиков и захватит мир. И придется переквалифицироваться обратно во флешеров или учить Silverlight. Лично я не сильно хочу иметь дело с продуктами MS, но кто знает.</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/CaCCf57K8tg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/actionscript-30/2009/03/19/silverlight-3-beta/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/actionscript-30/2009/03/19/silverlight-3-beta/</feedburner:origLink></item>
		<item>
		<title>Закрываем И запускаем AIR-debugger с помощью Eclipse Monkey</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/apGwKeQFm08/</link>
		<comments>http://the33cows.com/air/2009/02/23/close-and-open-air-debugger-by-eclipse-monkey/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 17:06:06 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Flex Builder 3]]></category>

		<category><![CDATA[Monkey Script]]></category>

		<category><![CDATA[Eclipse Monkey]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=298</guid>
		<description><![CDATA[Про апгрейченый скрипт запуска AIR дебагера:

/*
 * Menu: Kill adl an run debug
 * Key: M3+d
 * Kudos: Ilja Panin http://the33cows.com
 * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
 */

var workspace = Packages.org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
var configToRunName = "[YOU_DEBUG_CONFIGURATION_NAME]";

function main()
{
	Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");

	loadBundle("org.eclipse.debug.ui");

	var ProgressMonitorDialog = Packages.org.eclipse.jface.dialogs.ProgressMonitorDialog;
	var IRunnableWithProgress = Packages.org.eclipse.jface.operation.IRunnableWithProgress;

	var runnableWithProgress = new IRunnableWithProgress({run: runfun});
	var monitorDialog = new ProgressMonitorDialog(window.getShell()).run(true, true, runnableWithProgress);;
}

function runfun(monitorDialog)
{
	monitorDialog.beginTask("Run debbuger ...", 1);
	var plugin [...]]]></description>
			<content:encoded><![CDATA[<p>Про апгрейченый скрипт запуска AIR дебагера:</p>
<pre>
<div class="codesnip-container" >/*
 * Menu: Kill adl an run debug
 * Key: M3+d
 * Kudos: Ilja Panin http://the33cows.com
 * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
 */

var workspace = Packages.org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
var configToRunName = "[YOU_DEBUG_CONFIGURATION_NAME]";

function main()
{
	Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");

	loadBundle("org.eclipse.debug.ui");

	var ProgressMonitorDialog = Packages.org.eclipse.jface.dialogs.ProgressMonitorDialog;
	var IRunnableWithProgress = Packages.org.eclipse.jface.operation.IRunnableWithProgress;

	var runnableWithProgress = new IRunnableWithProgress({run: runfun});
	var monitorDialog = new ProgressMonitorDialog(window.getShell()).run(true, true, runnableWithProgress);;
}

function runfun(monitorDialog)
{
	monitorDialog.beginTask("Run debbuger ...", 1);
	var plugin =  Packages.org.eclipse.debug.core.DebugPlugin;
	var launchManager = plugin.getDefault().getLaunchManager();
	configurations = launchManager.getLaunchConfigurations();

	var conf;

	for (var i in configurations)
	{
		if (configurations[i].getName() == configToRunName )
		{
			conf = configurations[i];
		}
	}

	if (conf)
	{
		var launch = Packages.org.eclipse.debug.ui.DebugUITools.buildAndLaunch(conf, "debug", monitorDialog);
	}
	else
	{
		debug("project not found!");
	}

	monitorDialog.done()
}

function debug(s)
{
  	out.println(s);
}</div>
</pre>
<p>Правила применения:<br />
1.заменяем строку [YOU_DEBUG_CONFIGURATION_NAME] на имя конфигурации запуска приложения. Это имя можно найти в меню &#8220;Run -> Open Debug Dialog&#8230;&#8221;<br />
2. заменяем сочетание M3+d на свое (M3 это alt). Для меня alt+d ближе чем F11 <img src='http://the33cows.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>При выполнении скрипт, убивается процесс AIR дебагера и запускает процесс сборки и новый дебагер.</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/apGwKeQFm08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/air/2009/02/23/close-and-open-air-debugger-by-eclipse-monkey/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/air/2009/02/23/close-and-open-air-debugger-by-eclipse-monkey/</feedburner:origLink></item>
		<item>
		<title>Закрываем AIR-debugger с помощью Eclipse Monkey</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/umi3lpdt5Eg/</link>
		<comments>http://the33cows.com/air/2009/02/22/close-air-debug-by-eclipse-monkey/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 16:21:21 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Flex Builder 3]]></category>

		<category><![CDATA[Monkey Script]]></category>

		<category><![CDATA[Eclipse Monkey]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=291</guid>
		<description><![CDATA[Flex Builder не умеет закрывать дебагер AIR приложений.
Лично я все время забываю закрывать приложение и каждый раз при запуске получаю сообщение об ошибке. После чего приходится &#8220;искать&#8221; приложение и закрывать его. Отнимает время и иногда нервирует.
Чтобы облегчить себе работу в закрытии приложения я написал небольшой Eclipse Monkey script:

/*
 * Menu: kill adl
 * Key: M3+d
 [...]]]></description>
			<content:encoded><![CDATA[<p>Flex Builder не умеет закрывать дебагер AIR приложений.</p>
<p>Лично я все время забываю закрывать приложение и каждый раз при запуске получаю сообщение об ошибке. После чего приходится &#8220;искать&#8221; приложение и закрывать его. Отнимает время и иногда нервирует.</p>
<p>Чтобы облегчить себе работу в закрытии приложения я написал небольшой Eclipse Monkey script:</p>
<pre>
<div class="codesnip-container" >/*
 * Menu: kill adl
 * Key: M3+d
 * Kudos: Ilja Panin http://the33cows.com
 * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
 */

function main()
{
	Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");
}</div>
</pre>
<p>он убивает запущенный процесс adl.exe(отладчик AIR) легким движением руки ) и экономит время.</p>
<p>В идеале я хотел написать скрипт, который слушает событие эклипса о запуске дебагера, и автоматом дебагер, но не нашел как &#8220;достучатся&#8221; до дебагера.</p>
<p><strong>upd:</strong> чтобы запустить скрипт нужно создать в папке со скриптами(по умолчанию  проект monkey папка scripts) js файл, например kill-adl.js в него вставить код. Запускаеться скрипт нажатием alt+d или выбором пункта из меню</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/umi3lpdt5Eg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/air/2009/02/22/close-air-debug-by-eclipse-monkey/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/air/2009/02/22/close-air-debug-by-eclipse-monkey/</feedburner:origLink></item>
		<item>
		<title>Код форматер для Flex Builder</title>
		<link>http://feedproxy.google.com/~r/the33cows/~3/FHXIRKyXXqY/</link>
		<comments>http://the33cows.com/actionscript-30/2009/02/02/code-formater-for-flex-builder/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 14:39:45 +0000</pubDate>
		<dc:creator>Ilja</dc:creator>
		
		<category><![CDATA[ActionScript 3.0]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Effective work]]></category>

		<category><![CDATA[Flex Builder 3]]></category>

		<guid isPermaLink="false">http://the33cows.com/?p=288</guid>
		<description><![CDATA[Ура!
свершилось чудо, появился бесплатный кодоформатер для as3&#124;mxml в Flex Builder
http://www.riaspace.net/2009/01/ctrlshiftf-for-flex-builder/
В отличаи от ранее предлагаемого в поставке InterpriseIDE имеет настройки форматирования и работает лучше (ну или мне так показалось).
Спасибо Косте за ссылку
]]></description>
			<content:encoded><![CDATA[<p>Ура!</p>
<p>свершилось чудо, появился бесплатный кодоформатер для as3|mxml в Flex Builder</p>
<p><a href="http://www.riaspace.net/2009/01/ctrlshiftf-for-flex-builder/">http://www.riaspace.net/2009/01/ctrlshiftf-for-flex-builder/</a></p>
<p>В отличаи от ранее предлагаемого в поставке InterpriseIDE имеет настройки форматирования и работает лучше (ну или мне так показалось).</p>
<p>Спасибо <a href="http://www.riapriority.com/blogs/">Косте</a> за ссылку</p>
<img src="http://feeds.feedburner.com/~r/the33cows/~4/FHXIRKyXXqY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://the33cows.com/actionscript-30/2009/02/02/code-formater-for-flex-builder/feed/</wfw:commentRss>
		<feedburner:origLink>http://the33cows.com/actionscript-30/2009/02/02/code-formater-for-flex-builder/</feedburner:origLink></item>
	</channel>
</rss>
