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

<channel>
	<title>Лобанов Алексей</title>
	<atom:link href="http://blog.shoosh.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.shoosh.ru</link>
	<description>Лобанов Алексей</description>
	<lastBuildDate>Sat, 12 Mar 2011 13:38:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>График сезонной депрессии</title>
		<link>http://blog.shoosh.ru/2011/01/31/grafik-sezonnoj-depressii/</link>
		<comments>http://blog.shoosh.ru/2011/01/31/grafik-sezonnoj-depressii/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 16:58:08 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Портфолио]]></category>
		<category><![CDATA[Картинки]]></category>
		<category><![CDATA[Моё]]></category>
		<category><![CDATA[Рисунки]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1394</guid>
		<description><![CDATA[Каждый год, в тёмный период осени, зимы и ранней весны, милионы людей начинают чувствовать себя уставшими и вялыми. Вам поможет светотерапия и лампы, которые показывают высокую эффективность для преодоления симптомов сезонного аффективного расстройства. Задача. Перерисовать график сезонной депрессии. Результат моего труда, вот из этой неказистой картинки:]]></description>
			<content:encoded><![CDATA[<p>Каждый год, в тёмный период осени, зимы и ранней весны, милионы людей начинают чувствовать себя уставшими и вялыми. Вам поможет <a href="http://sveto-terapia.ru">светотерапия</a> и лампы, которые показывают высокую эффективность для преодоления симптомов <a href="http://www.sveto-terapia.ru/articles/seasonal-affective-disorder/">сезонного аффективного расстройства</a>.</p>
<blockquote><p><em>Задача.</em> Перерисовать график сезонной депрессии.</p></blockquote>
<p>Результат моего труда, <a href="http://farm6.static.flickr.com/5176/5405032182_c8025bf474.jpg" rel="shadowbox[sbpost-1394];player=img;">вот из этой неказистой картинки</a>:</p>
<p><a href="http://farm6.static.flickr.com/5096/5400693636_c352e9de9a_z.jpg" rel="shadowbox[sbpost-1394];player=img;"><img class="alignnone" title="Стало:" src="http://farm6.static.flickr.com/5096/5400693636_c352e9de9a_z.jpg" alt="" width="500" height="565" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2011/01/31/grafik-sezonnoj-depressii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обновление дизайна letcrew</title>
		<link>http://blog.shoosh.ru/2011/01/30/letcrew-rebrand-2011/</link>
		<comments>http://blog.shoosh.ru/2011/01/30/letcrew-rebrand-2011/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 10:48:42 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Портфолио]]></category>
		<category><![CDATA[Картинки]]></category>
		<category><![CDATA[Логотип]]></category>
		<category><![CDATA[Макет]]></category>
		<category><![CDATA[Моё]]></category>
		<category><![CDATA[Сайты]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1366</guid>
		<description><![CDATA[Этот проект был нашим общим детищем с моими друзьями: Сашей, Юрой и Владом. Саша как то стразу отсеялся, а мы с Юрой довольно продолжительное время клепали всякие штуки, но в конечном итоге и я сдулся. В последствии у руля остался только Юра, он сейчас и занимается развитием этого шикарного бренда. Ах да, Влад нас вдохновлял, муза ёпта. Задача. Обновить [...]]]></description>
			<content:encoded><![CDATA[<p>Этот проект был нашим общим детищем с моими друзьями: Сашей, Юрой и Владом. Саша как то стразу отсеялся, а мы с Юрой довольно продолжительное время клепали всякие штуки, но в конечном итоге и я сдулся. В последствии у руля остался только Юра, он сейчас и занимается развитием этого шикарного бренда. Ах да, Влад нас вдохновлял, муза ёпта.</p>
<blockquote><p><em>Задача.</em> Обновить логотип и дизайн сайта.</p></blockquote>
<p>Вот так выглядят макеты страниц. Также можно заметить новый логотип:</p>
<p><a href="http://farm6.static.flickr.com/5175/5400656920_4d9a17773b_b.jpg" rel="shadowbox[sbpost-1366];player=img;"><img class=" alignnone" style="border: 0px initial initial;" title="Главная страница" src="http://blog.shoosh.ru/wp-content/uploads/2011/01/main-thumb.jpg" alt="" width="194" height="233" /></a><a href="http://farm6.static.flickr.com/5300/5401132292_b3d90e8996_b.jpg" rel="shadowbox[sbpost-1366];player=img;"><img class="alignnone" style="border: 0px initial initial;" title="Форма заказа" src="http://blog.shoosh.ru/wp-content/uploads/2011/01/form-thumb.jpg" alt="" width="196" height="240" /></a><a href="http://farm6.static.flickr.com/5299/5400136485_32008c3990_b.jpg" rel="shadowbox[sbpost-1366];player=img;"><img class="alignnone" style="border: 0px initial initial;" title="Сетка с работами" src="http://blog.shoosh.ru/wp-content/uploads/2011/01/grid-thumb.jpg" alt="" width="194" height="233" /></a><a href="http://farm6.static.flickr.com/5296/5400737242_27c69e9c52_b.jpg" rel="shadowbox[sbpost-1366];player=img;"><img class="alignnone" title="Выбранная работа" src="http://blog.shoosh.ru/wp-content/uploads/2011/01/target-thumb.jpg" alt="" width="194" height="233" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2011/01/30/letcrew-rebrand-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Классический MVC</title>
		<link>http://blog.shoosh.ru/2010/07/21/classic-mvc/</link>
		<comments>http://blog.shoosh.ru/2010/07/21/classic-mvc/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:35:52 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Паттерны]]></category>
		<category><![CDATA[Перевод]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1158</guid>
		<description><![CDATA[Это мой вольный перевод статьи Била Сандерса о реализации классического мета паттерна MVC на Smalltalk-80. Так как это мой первый опыт, строго не судите и в комментариях желательно оставлять какие либо замечания по тексту. Переводил не дословно, немного из русскоязычных источников накопал (и каюсь, перевёл не всё). Это не введение в модель MVC, а  обзор [...]]]></description>
			<content:encoded><![CDATA[<address><span style="color: #888888;">Это мой вольный перевод статьи <a href="http://www.as3dp.com/about-us/">Била Сандерса</a> о реализации классического мета <a href="http://www.as3dp.com/2010/03/01/separated-presentation-the-classic-model-view-controller-pattern/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+as3dp%2FgQKb+%28ActionScript+3+Design+Patterns%29&amp;utm_content=Google+Reader">паттерна MVC на Smalltalk-80</a>. Так как это мой первый опыт, строго не судите и в комментариях желательно оставлять какие либо замечания по тексту. Переводил не дословно, немного из русскоязычных источников накопал (и каюсь, перевёл не всё).</span><br />
</address>
<p>Это не введение в модель <em>MVC</em>, а  обзор его осуществления на <a href="http://ru.wikipedia.org/wiki/Smalltalk">Smalltalk-80</a> для понимания первоначальных намерений и  функций триады. Классическая <em>MVC </em>поможет лучше понять последующее развитие  паттернов, которые появились позже. Посмотрим, как простое <em>MVC </em>приложение  работает в Smalltalk-80 и изучим как оно может быть реализовано на языке <strong> ActionScript</strong>.</p>
<blockquote><p><em><strong>Model-view-controller</strong></em> (<strong>MVC</strong>,  «Модель-представление-поведение», «Модель-представление-контроллер») — архитектура программного  обеспечения, в которой <a title="Модель данных" href="http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85">модель данных</a> приложения, <a title="Пользовательский интерфейс" href="http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81">пользовательский  интерфейс</a> и управляющая логика разделены на три отдельных  компонента, так, что модификация одного из компонентов оказывает  минимальное воздействие на другие компоненты.</p></blockquote>
<address style="text-align: right;">Современный вид MVC.<a href="http://ru.wikipedia.org/wiki/Model-View-Controller"></a> </address>
<h3><span style="color: #594f4d;"><em>Реализация Model-View-Controller в Smalltalk-80.</em></span></h3>
<p>Модель <em> MVC </em>облегчает разделение ответственности при разработке интерактивных  графических приложений. Логика и  состояние приложения, как пользователи взаимодействуют с приложением, и  как состояние приложения представляется пользователю  по средствам отдельных элементов триады <em>MVC</em>. Smalltalk-80  использует метафору MVC, что обеспечивает встроенную поддержку для  интерактивной разработки приложений. Идея заключалась в  том, чтобы обеспечить набор встроенных компонентов <a href="http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81">пользовательского  интерфейса</a>, таких как кнопки, меню и списки, которые могут быть  подключены к GUI приложения. Для эффективного использования этих встроенных  элементов интерфейса, реализация должна была  быть построена в соответствии с <em>MVC</em>. Давайте посмотрим  на концептуальную диаграмму приложения <strong><em>Smalltalk-80</em></strong>.<span id="more-1158"></span></p>
<p style="text-align: center;"><a href="http://blog.shoosh.ru/wp-content/uploads/2010/03/MVC.jpg" rel="shadowbox[sbpost-1158];player=img;"><img class="size-full wp-image-1180 aligncenter" title="MVC" src="http://blog.shoosh.ru/wp-content/uploads/2010/03/MVC.jpg" alt="" width="600" height="300" /></a></p>
<address style="text-align: center;">Диаграмма MVC в Smalltalk-80 (<a href="http://www.math.rsu.ru/smalltalk/gui/">Krasner &amp; Pope</a>)</address>
<p>Все объекты в <em>Smalltalk</em> общаться друг с другом при помощи сообщений, которые является способом вызова методов объекта. На первый взгляд, диаграмма <em>MVC </em>кажется немного странной. Model-View и Controller-Model имеют зависимости направленные в обе стороны. Вторым интересным аспектом было то, что  <em>пользовательский ввод</em> идет непосредственно через <em>контроллер</em>. Это является существенным изменением, как правило мы ожидаем от пользователя взаимодействия с элементами интерфейса в представлении (View), а не в <em>корнтроллере</em>. В  Smalltalk-80, все данные с устройства ввода подаются  непосредственно в контроллер. Давайте кратко рассмотрим, как MVC поддерживается в Smalltalk-80.</p>
<h3><span style="color: #594f4d;"><em>MVC классы в Smalltalk-80.</em></span></h3>
<p>Есть три абстрактных класса называемые <em>Модель</em>, <em>Вид </em>и <em>Контроллер</em>. Все  конкретные реализации модели, вида и контроллера должны иметь подклассы этих абстрактных  суперклассов. Давайте  взглянем на классы (это сокращенное описание &#8212; см. <a href="http://www.math.rsu.ru/smalltalk/gui/">Krasner &amp; Pope</a>).</p>
<ul>
<li><em><strong><span style="color: #993300;">Модель:</span></strong></em><br />
абстрактный суперкласс <strong><em>Model</em></strong> реализует общую <em>модель </em>поведения. Он реализует механизм зависимости обслуживания. <em>Вид </em>может зарегистрироваться на конкретную <em>модель </em>чтобы стать подписчиком и получать оповещения об изменениях. Если конкретная <em>модель </em>рассылает свои сообщения, то они будут автоматически отправлены всем своим подписанным <em>представлениям. </em>Это реализация <a href="http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_%28%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29">паттерна Наблюдатель</a> (паттерн поведения объектов). Конкретная модель напрямую не знает о зависимых от него представлениях.<br />
<span style="color: #888888;"><br />
</span></li>
</ul>
<ul>
<li><span style="color: #993300;"><strong><em>Представление:<br />
</em></strong></span>абстрактный суперкласс <strong><em>View</em></strong> реализует общие поведения <em>представления</em>. Встроенный набор компонентов подкласса <em>представления</em> (например, StandardSystemView &#8212; стандартное окно и  TextEditorView &#8212; текстовый редактор). Представления могут быть вложенными для разработки сложного  пользовательского интерфейса. Например, StandardSystemView (т.е. окна) содержит компонент представления, называемые TextEditorView.</p>
<p>Каждое <em>представление</em> может иметь одну <em>модель </em>и один <em>контроллер</em>. Встроенный компоненты по умолчанию имеют заранее  определенный класс <em>контроллера </em>для реализации своего стандартного  поведения. Чтобы создать экземпляр компонента, вам нужно настроить свою модель и отобразить  компонент. Компонент затем будет инициализировать по  умолчанию контроллер со своим экземпляром модели и регистрироваться в ней для получения сообщений. При закрытии компонента, освобождаются все вложенные компоненты. Когда представление освободилось, оно удаляет свои подписки на сообщения из <em>модели</em>. Если  вы хотите чтобы компоненты имели своё уникальное поведения, вы  можете создать свой контроллер для него.<br />
<span style="color: #888888;"><br />
</span></li>
<li><span style="color: #888888;"><strong><em><span style="color: #993300;">Контроллер:<br />
</span></em></strong></span>абстрактный суперкласс <strong><em>Controller</em></strong> реализующий общие поведения.<span style="color: #888888;"> </span>Каждый контроллер имеет ссылку на одну модель, один  контроллер, и глобальную переменную называемую <strong><em>сенсор</em></strong>, который предоставляет  интерфейс взаимодействия для устройств ввода (мышь, клавиатура). Абстрактный класс контроллера реализующий его общие поведения для  определения уже конкретного контроллера и соответствующего ему представления. Если конкретное представление является активным (которое в данный момент использует пользователь), то его <em>контроллер </em>осуществляет управление всего пользовательского ввода.</p>
<p><em>Контроллер </em>должен  иметь прямую ссылку на <em>представление</em>, например для того чтобы знать расположен ли сейчас курсора мыши над конкретным представлением. Важно отметить, что только контроллеры, а не представление, получает информацию о вводе данных (с клавиатуры или мышки).</li>
</ul>
<h3><em><span style="color: #594f4d;">Ключевые особенности реализации MVC на Smalltalk-80</span></em></h3>
<ul>
<li>каждый встроенный компонент (например ListBox) это представление;</li>
<li>представления могут быть вложенными;</li>
<li>каждый вид имеет соответствующий контроллер;</li>
<li>контроллер осведомляет своё представление, если оно активно;</li>
<li>активные контроллер (чье представление в данный момент активно) получает данные которые изменил пользователь при помощи устройств ввода;</li>
<li>контроллер может обновить представление (компонент) на основе действий пользователя;</li>
<li>контроллер изменяет модель на действий пользователя;</li>
<li>представление обновляет себя пир помощи наблюдателя, синхронизированного с моделью.</li>
</ul>
<h3><span style="color: #594f4d;"><em>Сравнение компонентов пользовательского интерфейса Smalltalk-80 и Flash</em></span></h3>
<p>Компоненты в Smalltalk-80 сделаны в соответствии с архитектурой MVC. В дополнение к ним, по умолчанию имеются классы контроллера и модели, которые могут быть использованы представлением для реализации его поведения. Например есть подкласс называемый TextHolder, который служит в качестве модели компоненту TextEditorView и соответствующий контроллер TextEditor. Поведение компонента можно перегрузить, и заменить своим.</p>
<p>Встроенные компоненты языка ActionScript не дают такой абстракции. В отличие от Smalltalk, во Flash пользователь взаимодействует с компонентами напрямую. Компонент реагирует на действия пользователя не посредством класса контроллера, а действие по умолчанию реализуются и осуществляются внутри самого компонента. Все они реализуют интерфейс IEventDispatcher. Есть несколько способов предотвратить поведение компонента по  умолчанию (если компонент позволяет это сделать). В  отличие от компонентов Smalltalk, многофункциональность  контроллера во Flash, осуществляется посредством самих компонентов. По сути, обработчик компонента строит свою собственную логику и состояние.  Например, рассмотрим иерархию классов  AS3 компонента Button:</p>
<table style="height: 120px;" border="0" cellspacing="0" cellpadding="5" width="800">
<tbody>
<tr>
<td>Package</td>
<td><a onclick="javascript:loadClassListFrame('class-list.html')" href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/package-detail.html">fl.controls</a></td>
</tr>
<tr>
<td>Class</td>
<td>public class Button</td>
</tr>
<tr>
<td>Inheritance</td>
<td>Button <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/LabelButton.html">LabelButton</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/BaseButton.html">BaseButton</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/core/UIComponent.html">UIComponent</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Sprite.html">Sprite</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html">DisplayObjectContainer</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/InteractiveObject.html">InteractiveObject</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html">DisplayObject</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/EventDispatcher.html">EventDispatcher</a> <img title="Inheritance" src="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/images/inherit-arrow.gif" alt="Inheritance" /> <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html">Object</a></td>
</tr>
<tr>
<td>Implements</td>
<td><a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/managers/IFocusManagerComponent.html">IFocusManagerComponent</a></td>
</tr>
</tbody>
</table>
<p>Все AS3 компоненты имеют подкласс <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/core/UIComponent.html">UIComponent</a> чей родительский класс обеспечивает функциональность для управления фокусом. Это интересная дилемма при реализации классического MVC на AS 3.0. Поскольку компоненты реализуют большую часть традиционных  функций контроллера, то имеет ли он какую то значимость? Лучший способ найти ответ на этот вопрос, это попытаться написать такое приложение.</p>
<h3><em><em><span style="color: #594f4d;">Простое приложение с использованием классического MVC</span></em></em></h3>
<p>В своей статье <a href="http://www.google.ru/search?hl=&amp;q=Krasner+and+Pope&amp;sourceid=navclient-ff&amp;rlz=1B3GGGL_ruRU352RU352&amp;ie=UTF-8">Краснер и Поуп</a> реализуют простой пример приложения «счётчик», которое демонстрирует классический MVC. Модель хранит значение счётчика. Существует общий вид, и 3 дочерних представления: первое выводи значение счётчика (в текстовом поле), второе уменьшает значение (кнопка) и третье увеличивает значение, тоже кнопка. Попробуем разработать это приложение на языке ActionScript3.0 используя стандартные компоненты, при этом придерживаться классического MVC. Первым  шагом является изучение поддерживаемых <a href="http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F">парадигм</a> MVC в ActionScript.</p>
<h3><em><span style="color: #594f4d;">Поддержка  классической реализации MVC в ActionScript 3.0</span></em></h3>
<p>Сравним основные особенности реализации в MVC Smalltalk-80 с тем, что имеется в AS3:</p>
<table style="height: 292px;" border="0" cellspacing="0" cellpadding="5" width="100%" align="left">
<tbody>
<tr>
<td align="left" valign="top"><strong>Smalltalk-80</strong></td>
<td align="left" valign="top"><strong>ActionScript 3.0</strong></td>
</tr>
<tr>
<td align="left" valign="top">Каждый компонент является представлением.</td>
<td align="left" valign="top">Мы можем трактовать каждый компонент как представление.</td>
</tr>
<tr>
<td align="left" valign="top">Представления  могут быть вложенными.</td>
<td align="left" valign="top">Встроенные компоненты (v3) являются рычагами управления и не содержат слои которые могут быть вложенными. Однако, мы можем обратится к сцене (stage), как к верхнему уровню представления, который может содержать вложенные компоненты.</td>
</tr>
<tr>
<td align="left" valign="top">Каждое представление имеет  соответствующий контроллер.</td>
<td align="left" valign="top">Мы можем зарегистрировать объект (контроллер) для получения пользовательских событий от встроенных компонентов языка.</td>
</tr>
<tr>
<td align="left" valign="top">Контроллер управляет фокусом представления.</td>
<td align="left" valign="top">Компоненты реализуют управление фокусом.</td>
</tr>
<tr>
<td align="left" valign="top">Активный контроллер  получает данные пользовательского ввода.</td>
<td align="left" valign="top">Может делать тоже самое, плюс компонент может рассылать пользовательские  события зарегистрированным объектам контроллера.</td>
</tr>
<tr>
<td align="left" valign="top">Контроллер может обновить представление  (компонент) на основе пользовательских действий.</td>
<td align="left" valign="top">Компонент  обновляется сам на основе пользовательских действий (это реализовано по умолчанию). Тем не  менее, компоненты могут позволить предотвратить выполнение событий по умолчанию с помощью генерируемого объекта событий. Зарегистрированный контроллер может обновить компонент через свойства в передаваемых событиях.</td>
</tr>
<tr>
<td align="left" valign="top">Контроллер изменяет  модель на основе пользовательского ввода.</td>
<td align="left" valign="top">Объект контроллера может наблюдать за событиями компонента и таким образом обновлять модель.<em> </em></td>
</tr>
<tr>
<td align="left" valign="top">Представление обновляет себя используя наблюдатель синхронизированный с моделью.</td>
<td align="left" valign="top">Представление может наблюдать за моделью если оно реализует интерфейс IEventDispatcher.</td>
</tr>
</tbody>
</table>
<p>Попробуем реализовать приложение счётчик на основе этих возможностей. (Исходный код и диаграммы классов вы можете посмотреть в <a href="http://www.as3dp.com/2010/03/01/separated-presentation-the-classic-model-view-controller-pattern/">оригинальной статье</a>)</p>
<p>Положительные аспекты:</p>
<ul>
<li>Разделение презентационной части сохраняются;</li>
<li>Контроллер представляет собой стратегию для обработки пользовательского ввода (или не представляет?);</li>
<li>Контроллер это общий объект, который может быть вызван несколькими представлениями.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2010/07/21/classic-mvc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>От суеверий к пониманию</title>
		<link>http://blog.shoosh.ru/2010/05/23/ot-sueverij-k-ponimaniyu/</link>
		<comments>http://blog.shoosh.ru/2010/05/23/ot-sueverij-k-ponimaniyu/#comments</comments>
		<pubDate>Sun, 23 May 2010 09:22:50 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Цитата]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1318</guid>
		<description><![CDATA[Существуют моменты когда хочется перевести стрелки на баги языка, фреймворка или API какого нибудь ресурса, мол у меня идеальный код, а во всём виноват кто-то другой. Вот что думает по этому поводу Стив Макконнелл: Одно из основных различий между любителями и профессиональными программистами — различие, появляющееся при переходе от суеверия к пониманию. Под суеверием я [...]]]></description>
			<content:encoded><![CDATA[<p>Существуют моменты когда хочется перевести стрелки на баги языка, фреймворка или API какого нибудь ресурса, мол у меня идеальный код, а во всём виноват кто-то другой. Вот что думает по этому поводу Стив Макконнелл:</p>
<blockquote><p><strong><em>Одно из основных различий</em></strong> между любителями и профессиональными программистами — различие, появляющееся при переходе от суеверия к пониманию. Под суеверием я здесь понимаю не иллюзию, что программа выдаёт больше ошибок в полнолуние, а замену «прочувствования» программы и её пониманием. Если вы часто обнаруживаете, что подозреваете компилятор или аппаратные средства в ошибке, вы в плену суеверий. Давнишние исследования показали, что только  около 5% всех ошибок связано с аппаратурой, компиляторами или ОС (<em>Ostrand and Weyuker, 1984</em>). Сейчас этот процент, видимо, ещё меньше. Программист, достигший сферы понимания, обращает внимание прежде всего на своё творение, являющееся потенциальным источником 95% ошибок. Нужно знать роль каждой строки своей программы. Ничто не может называться верным только потому, что выглядит работоспособным. Если вы не знаете, почему это работает, вероятно, оно и не работает на самом деле.</p>
<address style="text-align: right;"><span style="color: #000000;">С. Макконнелл (Совершенный код)</span><br />
</address>
</blockquote>
<p>Стараемся, думаем, учимся и превращаемся из любителей в профессионалы <img src='http://blog.shoosh.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2010/05/23/ot-sueverij-k-ponimaniyu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Организация визуальных объектов</title>
		<link>http://blog.shoosh.ru/2010/03/28/display-obj-manager/</link>
		<comments>http://blog.shoosh.ru/2010/03/28/display-obj-manager/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 19:45:26 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1260</guid>
		<description><![CDATA[Например нужно создать контейнеры с разделами сайта и не запутаться кто под кем лежит и ид. Задача. Удобно организовать визуальные объекты на сцене. Это как то централизует управление основными визуальными слоями в приложении: public class StageProxy extends MovieClip { private var _layers:Object; /** * Modules */ public static const CONTACTS:String = "contacts components layer"; public [...]]]></description>
			<content:encoded><![CDATA[<p>Например нужно создать контейнеры с разделами сайта и не запутаться кто под кем лежит и ид.</p>
<blockquote><p><em>Задача</em>. Удобно организовать визуальные объекты на сцене. </p></blockquote>
<p>Это как то централизует управление основными визуальными слоями в приложении:</p>
<pre class="js" name="code">
public class StageProxy extends MovieClip {
        private var _layers:Object;

	/**
	 * Modules
	 */
	public static const CONTACTS:String = "contacts components layer";
	public static const PORTFOLIO:String = "portfolio components layer";
	public static const NEWS:String = "news components layer";
	public static const SERVICE:String = "service components layer";

	private function initScene():void {
		_layers = { };

		// main module
		stage.addChild( _layers[PORTFOLIO] = new MovieClip() );
		stage.addChild( _layers[NEWS] = new MovieClip() );
		stage.addChild( _layers[SERVICE] = new MovieClip() );
		stage.addChild( _layers[CONTACTS] = new MovieClip() );
	}

	//----------------------------------
	//--------  GETTER method
	//----------------------------------
	public function getLayer(layerKey:String):Object {
			return _layers[layerKey] as Object;
	}
}</pre>
<p>Забираем нужный слой вот так:</p>
<pre name="code" class="js">
_stageProxy.getLayer(StageProxy.NEWS);
</pre>
<p>Всё.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2010/03/28/display-obj-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Поварёнок. Платформер для Макфы</title>
		<link>http://blog.shoosh.ru/2010/03/13/povaryonok-platformer-dlya-makfy/</link>
		<comments>http://blog.shoosh.ru/2010/03/13/povaryonok-platformer-dlya-makfy/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 20:37:04 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Портфолио]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[Ample]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Игры]]></category>
		<category><![CDATA[Моё]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1238</guid>
		<description><![CDATA[Игра для макаронной компании «Макфы». Главный герой поварёнок, пытается добыть все ингредиенты чтобы сварить отпадный супчек, помогите ему в этом! Задача. Создать классический платформер на подобие супер марио. Пока что не могу дать ссылку на игру в связи с тестированием игры макаронными баронами, выкладываю трейлер: Данная работа была сделана на период работы в студии Ample.]]></description>
			<content:encoded><![CDATA[<p>Игра для макаронной компании «Макфы». Главный герой поварёнок, пытается добыть все ингредиенты чтобы сварить отпадный супчек, помогите ему в этом!</p>
<blockquote><p><em>Задача.</em> Создать классический платформер на подобие супер марио.</p></blockquote>
<p>Пока что не могу дать ссылку на игру в связи с тестированием игры макаронными баронами, выкладываю трейлер:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10120411&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=10120411&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<address>Данная  работа была сделана на период работы в студии <a href="http://ample.ru/">Ample</a>.</address>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2010/03/13/povaryonok-platformer-dlya-makfy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Олимпиада в Ванкувере 2010. Спустя неделю</title>
		<link>http://blog.shoosh.ru/2010/02/21/vancouver2010/</link>
		<comments>http://blog.shoosh.ru/2010/02/21/vancouver2010/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 11:27:14 +0000</pubDate>
		<dc:creator>Мария Лобанова</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Спорт]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1139</guid>
		<description><![CDATA[12 февраля 2010 года, начались ХХI олимпийские игры, событие, которого с нетерпением ждал весь мир, с момента когда завершилась олимпиада в Турине. Первая новость из олимпийского Ванкувера, которая тут же облетела весь мир. ожидающий начало спортивного праздника: «Трагически погиб грузинский саночник Нодар Кумариташвили за несколько часов до начала открытия олимпийских игр», данное событие сразу повергло [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1138" src="http://blog.shoosh.ru/wp-content/uploads/2010/02/vankyver2010.png" alt="" width="152" height="170" /></p>
<p><strong>12 февраля 2010  года</strong>, начались ХХI олимпийские игры, событие, которого с  нетерпением ждал весь мир, с момента когда завершилась олимпиада в  Турине. Первая новость из олимпийского  Ванкувера, которая тут же  облетела весь мир. ожидающий начало спортивного праздника: «Трагически  погиб грузинский саночник Нодар Кумариташвили  за несколько часов до  начала открытия олимпийских игр», данное событие сразу повергло в шок  весь мир.  Чуть позже выяснилось что данная трагедия произошла из-за неправильной и очень опасной, высокоскоростной трассы. Максимальная  скорость на ней – <em>154 км/ч</em>. Для сравнения, в Турине было <em>138 км/ч</em>.<br />
Затем уже на открытии олимпийских игр в самый ответственный и  долгожданный момент отказала канадская техника при зажжении олимпийского  огня, один из факелов не выехал.<br />
Все надеялись, что все плохое на  этом и закончится. Но в истории олимпиад нет ни одной, которая бы не  прошла под каким-либо девизом, так, например, олимпиада в <strong>Cолд-Лейк-Сити</strong> стала самой скандальной, а в <strong>Турине </strong>самой дорогой.</p>
<blockquote><p><strong><em>Ванкувер</em></strong> же отличился  своей дурной организацией игр: недоработанные участки трасс, на которых  проводились соревнования, сложнейшие как санные так и лыжные трассы,  переменчивая погода:  то солнце, то ливень, то снег, которая вносила  серьезные коррективы в результаты соревнований лыжников, просто  ужаснейшая организация видеокартинки соревнований.</p></blockquote>
<p>Это то, чем  запомнится XXI олимпиада для всего мира.  А  какой же станет Ванкуверская олимпиада для  России? <span id="more-1139"></span></p>
<p><a href="http://pics.livejournal.com/katnikova_maria/pic/00002bb2/"><img src="http://pics.livejournal.com/katnikova_maria/pic/00002bb2/s320x240" border="0" alt="" hspace="10" vspace="15" width="320" height="180" align="right" /></a>Ко всему вышеперечисленному  для России, к сожалению, эти игры  войдут в историю как самые провальные. Складывается такое впечатление,  что наши спортивные чиновники либо не были вообще заинтересованы в  успешном выступлении российской сборной на олимпиаде, либо просто не наш  сезон, но все же если смотреть реалистично на вещи, то, конечно, вся  проблема в подготовке спортсменов. Такого выступления нашей сборной  лично я не помню за всю историю олимпиад. Наши спортсмены оказались <em>не  подготовленные абсолютно по всем видам</em>. Медали, которые были и еще будут  заработаны нашими спортсменами выиграны либо случайно, либо не так ярко,  как было раньше. На данный момент я не понимаю какие имена войдут в историю.<br />
Вспоминаю олимпиаду в Нагано, Солд-Лейк-Сити, Турине, которые тоже не  являлись лучшими олимпиадами, однако сколько легендарных имен вошло в  историю с тех олимпиад: Лариса Лазутина, Юлия Чепалова, Павел Ростовцев,  Журова, Дорофеев, Бережная и Сихарулидзе, Ирина Слуцкая, Алексей Ягудин,  Ирина Лобачева и Илья Авербух, Навка и Костомаров и пусть не все из них  выиграли золото олимпиад, но все эти люди вошли в историю своими яркими  выступлениями, своей красочной борьбой.<br />
После последней олимпиады в  Турине все понимали, что в следующее четырехлетие произойдет смена  поколений, многие ведущие спортсмены покинут большой спорт, а новое  поколение наша страна не успела вырастить и подготовить.</p>
<blockquote><p><em><strong>Почему  произошел этот ощутимый провал?</strong></em> — Да потому, что в России не государство  несет ответственность за спортивные достижения, а всё переложено на  инициативу самих спортсменов. Самая большая и «могучая» страна не в  силах  не только  устроить приемлемые условия для тренировок, но и  защитить уже готовых спортсменов на самих играх. Зато когда дело доходит  до высших результатов, тут же чиновники первыми выстраиваются в очереди  с поздравлениями и благодарят за вклад в «общий успех».</p></blockquote>
<p><a href="http://pics.livejournal.com/katnikova_maria/pic/0000301p/"><img class="alignleft" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/0000301p" border="0" alt="" hspace="20" vspace="20" width="200" height="150" align="left" /></a> Итак, вернемся непосредственно к событиям на играх в Канадском Ванкувере.  Первую медаль нам добыл наш конькобежец <em><span style="color: #993300"><strong>Иван Скобрев</strong></span></em>,получив третье  место в гонке на <em>5000 м</em>. Чуть позже мы уже начали задумываться, что это  будет первая и последняя медаль в копилке сборной. Но на 5 день  соревнований, после 4 дней неудач, в одном из сильнейших видов для  России, где обычно мы набирали наибольшее количество медалей, первое  золото и серебро принесли нам мужчины лыжники: <span style="color: #d3dc03"><strong><em>Никита Крюков</em></strong></span> и <span style="color: #808080"><strong><em>Александр Панжинский</em></strong></span>.  Далее медаль в одной из  новых видов олимпиады, и тем более не характерном для России &#8212; скейлетон  нам принес бронзу <span style="color: #993300"><em><strong>Александр Третьяков</strong></em></span>. И это все, за неделю  соревнований  5 медалей, из которых всего одна высшего достоинства.</p>
<p>Вспомним прошлые олимпиады.  С <em><strong>1956-1992 гг.</strong></em> СССР  находилось на первом либо втором местах общекомандного зачета, <strong><em>1994г.</em></strong> Лилихамер: Россия 3-е место, <strong><em>1998 г.</em></strong> Нагано 3-е место, где наши лыжницы  собрали все золото индивидуальных гонок, а так же выиграли эстафету .   Оксана Грищук и Евгений Платов стали двухкратными олимпийскими  чемпионами. А так же Дмитреев, Казакова и Илья Кулик.<br />
Солд-Лейк-Сити 4-е место с  16 медалями, 6 из которых золотые.  Снова  отличились наши лыжницы и лыжники, а так же фигуристы.<br />
Турин 2002  5-е место, 22 медали, 8 из которых золотых.  Стала наиболее удачной,  после так называемой, на тот момент, провальной олимпиады  Солд-Лейк-Сити. Отличились наши лыжницы и биатлонистки, конькобежка Светлана   Журова,  Евгений Плющенко стал героем олимпиады, Навка и Костомаров, Слуцкая,  Тотьмянина и Маринин.</p>
<blockquote><p>И вот  наступило то время, когда  скандальная и провальная олимпиада в Солд-лейк-сити, когда 5-ое место в  Турене, кажутся  чем то недостижимым.</p></blockquote>
<p>Мы ждали первый, второй, третий,  четвертый дни олимпиады, понимая, что наши вид<a href="http://pics.livejournal.com/katnikova_maria/pic/00004f72/"><img class="alignright" style="border: 0pt none;margin-top: 15px;margin-bottom: 15px" src="http://pics.livejournal.com/katnikova_maria/pic/00004f72/s320x240" border="0" alt="" hspace="15" vspace="15" width="200" height="148" align="right" /></a>ы спорта еще впереди, что сноуборд, горные лыжи,  конькобежный спорт &#8212; это всё не наши виды, что наше золото ждет нас. Наша  могучая. в прошлом. лыжная команда, наши хоккеисты, выигравшие два  последних чемпионата мира, наши фигуристы, пусть еще не до конца  набравшие свою лучшую форму, но все же выигравшие три из четырех медалей  чемпионата Европы. Но дни шли, а медалей в нашей копилке так и не  прибавлялось. Прошло более половины соревнований лыжников , а  единственная радость это две медали в одной гонке. В остальных мы далеко  или не очень, но все же за чертой призеров. Каждый день отчаявшиеся  комментаторы, говорят остается ждать и надеяться, ждать и надеется.  Сначала оставалось более половины гонок, потом еще половина гонок  впереди, а сейчас &#8212; ведь остались еще гонки где <em>наши могут выстрелить</em>,  но в это &laquo;выстрелить&raquo; уже по-моему никто не надеется.</p>
<p>Что  касается еще одного важного для российской сборной вида олимпийской  программы – фигурное катание, то в сравнении со скандальной олимпиадой в  Солд-Лейк–Сити и уж не говоря о наиболее успешной олимпиаде в Турине,  где наши фигуристы завоевали 4 медали 3 из которых были высшего  достоинства, фигуристы выступили провально. Все началось с самой,  по-моему мнению, обидного проигрыша <strong><em>Юка Кавагути</em></strong> и <strong><em>Александра Смирнова</em></strong>. Да,  если реально смотреть на вещи, то 4 года назад, когда Тотьмянина и  Маринин завершили свою карьеру, мы знали, что замены им в нашей сборной  нет, вырастить новых олимпийских чемпионов того же уровня мы не сумели, у  нас по сути вообще не осталось сильной пары и рассчитывать было не на  что. Пара Васильева еще слишком слаба и не постоянная в своих  результатах. Но за несколько месяцев до олимпиады японка Юка успела  получить российское гражданство.<a href="http://pics.livejournal.com/katnikova_maria/pic/00005tgd/"><img class="alignleft" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/00005tgd/s320x240" border="0" alt="" hspace="15" vspace="15" width="241" height="240" align="left" /></a> Юка и Александр ученики Тамары Москвиной — тренера,  которыая делает олимпийских чемпионов. Они успели даже выиграть  европейский чемпионат, потеснив действующих чемпионов мира  <strong><em>Савченко </em></strong>и  <strong><em> Шаукова</em></strong>, но олимпиада это не чемпионат России и даже не чемпионат Европы  &#8212; это особое соревнование, где выигрывает наиболее подготовленный как в  физическом так и психологическом плане. Это была не их олимпиада, они  были не готовы к такому серьезному старту, да их тренирует легендарная  Масквина, да у них сильный потенциал, но это еще не их главный старт,  эта олимпиада китайцев Сюнь Шень и Хомбо Джао, которые шли к своему  золоту 4 олимпиады, пропуская вперед  Дмитреева и Казакову, Бережную и  Сихарулидзе, Тотьмянину и Маринина, и, к сожалению для России, и, к счастью китайцев, на этой олимпиаде мы все же уступили борьбу. Обидно даже не за  то, что мы остались без золотой медали на этих играх, а за то, что  прервалась серия побед Российской школы парного фигурного катания,  которая длилась еще с 1964 года. Двенадцать олимпиад подряд не было  равных российским фигуристам. Но все серии когда-то заканчиваются.  Заканчиваются, чтобы дать начало следующим, мы верим, что будущее за  безусловно талантливой парой Юка Кавагути и Александром Смирновым, их  олимпиада -  это олимпиада <em>2014 Сочи</em>.</p>
<blockquote><p>Не менее болезненным  разочарованием был проигрыш нашего гениального спортсмена  <span style="color: #808080"><strong><em>Евгения  Плющенко</em></strong></span>, который в итоге завоевал вторую серебряную медаль на  олимпийских играх.</p></blockquote>
<p>Все СМИ кричат о проигрыше Олимпийского чемпиона,  короля фигурного катания Евгения Плющенко. Но является ли это  поражением? Можно ли назвать проигрышом участие в трех олимпийских играх  и на всех подниматься не ниже второй ступеньки пьедестала, когда все  спортсмены современности покидают большой спорт сразу после завоевания  титула чемпиона, а большинство и не покорив вершины.<a href="http://pics.livejournal.com/katnikova_maria/pic/00006e1t/"><img class="alignright" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/00006e1t/s320x240" border="0" alt="" hspace="15" vspace="15" width="179" height="240" align="right" /></a> Вспомним его первую олимпиаду, где он уступил звание  чемпиона сильнейшему сопернику столетия Алексею Ягудину, где они в своих  произвольных программах выполняли по два четверных прыжка в каскадах.  Его триумфальную олимпиаду в Турине где Евгений обошел своего ближайшего  соперника <em><strong>Стефана Ламбьеляна</strong></em> на более чем 27 балов, и наконец, олимпиада  в Ванкувере, куда Женя приехал после трехлетнего перерыва в карьере и  заработал серебряную медаль, которая в итоге оказалась с платиновым  отливом! Он проиграл своему слабейшему сопернику <span style="color: #ffcc00"><span style="color: #eff300"><em><strong>Эвану Лайсачеку</strong></em></span>.</span> К  сожалению наша федерация не меняет своих убеждений и не утруждает себя  усилиями по защите спортсменов.  За годы такого отношения, в итоге это  поняли не только мы, но как видим по результатом, и представители всех  стран, в том числе  и судьи, которые при любом малейшем случае задвигают  российских спортсменов на низшие ступеньки пьедестала. Повторилась  ситуация с Ириной Слуцкой, когда ее обошла неопытная, слабая в  техническом плане, что уж говорить об артистической стороне, 16-летняя  американка Сара Хьюз. Та ситуация один в один совпала с ситуацией в Ванкувере, выиграл спортсмен со слабой, но идеально отточенной программой, спортсмен, которому была дана установка откатать чисто то, что он смог  выучить и тогда олимпийское золото будет его, его и его строны — США.  Люди, от которых зависит судьба фигурного катания заинтересованы в  успехе конкретных стран, а не в продвижении и процветании самого  фигурного катания. Многолетними стараниями изобретена система судейства,  с помощью которой результат соревнований не могут понять не только  зрители, а даже спортсмены и тренеры. <a href="http://pics.livejournal.com/katnikova_maria/pic/00007rk1/"><img class="alignleft" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/00007rk1/s320x240" border="0" alt="" hspace="15" vspace="15" width="180" height="240" align="left" /></a>Четверной прыжок приравнен к каскаду <strong>3+3+2</strong>, который  исполняют<strong> 500-600</strong> человек в мире. Восемь лет назад Ягудин соревновался с  Плющенко исполняя на соревнованиях по два четверных прыжка в каскадах,  Илья Кулик 12 лет назад исполнял прыжки в<a href="http://pics.livejournal.com/katnikova_maria/pic/00008r5t/"><img class="alignright" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/00008r5t" border="0" alt="" hspace="15" vspace="15" width="150" height="150" align="right" /></a> 3,5 оборота, а в 2010 году олимпийский чемпион, к  сожалению, даже не попытался выучить этот прыжок.  И сейчас я рада, что  наблюдала соревнования мужчин 2000-2006 годов, видимо будущее поколение  будет смотреть на легенд спорта только по видеозаписям.</p>
<p>Плющенко выполнил свои программы практически безошибочно,сделав в сумме  двух программ два четверных прыжка, но американский континент не  позволил ему обойти фигуриста из США, который, еще раз повторюсь,   в принципе не научился выполнять элименты ультра си.</p>
<p>Но, есть приятный момент, даже среди фигуристов высшего уровня есть  поклонники катания наших легенд спорта, так <em><strong>Бриан Жубер</strong></em> уже бравший лет 6  назад консультации у Ягудина, после чего включал его дорожку шагов в  свои программы, на этой олимпиаде пошел дальше, его короткая программа уж  больно сильно похожа на короткую программу Алексея Ягудина 2003 года,  которую они с Татьяной Анатольевной Тарасовой подготовили к новому  сезону, но, к сожалению, которая была показана лишь раз на этапе Гран-При. Взята была не только музыка, но так же и элементы программы, включая  общее представление <img src='http://blog.shoosh.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://pics.livejournal.com/katnikova_maria/pic/0000991a/"><img class="alignleft" style="margin: 15px;border: 0pt none" src="http://pics.livejournal.com/katnikova_maria/pic/0000991a/s320x240" border="0" alt="" hspace="15" vspace="15" width="250" height="188" align="left" /></a><br />
Оптимистичные болельщики возлагают надежды на  наш танцевальный дуэт, и ждут от него золота, ведь именно Домнина и  Шабалин лидируют после исполнения обязательной программы, но если учесть  то что наших окружают один канадский и два американских дуэта, то шансы,  по-моему мнению, минимальны.<br />
Ждать осталось не долго, может  ситуация на олимпиаде еще резко изменится в нашу сторону. Но уже сейчас  можно сказать, что она войдет в историю как самая сенсационная.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2010/02/21/vancouver2010/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Слайд-шоу</title>
		<link>http://blog.shoosh.ru/2009/12/02/slajd-shou/</link>
		<comments>http://blog.shoosh.ru/2009/12/02/slajd-shou/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 05:13:28 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ActionScript2.0]]></category>
		<category><![CDATA[Ample]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Моё]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1076</guid>
		<description><![CDATA[Часто необходимо сделать простенькую смену картинок с каким-нибудь эффектом. Например для банера или для шапки на сайт. Чтобы не замарачиваться с загрузкой картинок, они все будут храниться в библиотеке проекта. Вот ссылка на пример, как выглядит такое слайд-шоу. Задача. Сделать слайд-шоу. Пример кода реализующий задачу: var idInt:Number; // Массив имён ссылающихся на экземпляры картикон в [...]]]></description>
			<content:encoded><![CDATA[<p>Часто необходимо сделать простенькую смену картинок с каким-нибудь эффектом. Например для банера или для шапки на сайт. Чтобы не замарачиваться с загрузкой картинок, они все будут храниться в библиотеке проекта. Вот <a href="http://shoosh.ru/works/mekon/">ссылка на пример</a>, как выглядит такое слайд-шоу.</p>
<blockquote><p><em>Задача</em>. Сделать слайд-шоу.</p></blockquote>
<p>Пример кода реализующий задачу:</p>
<pre class="js" name="code">var idInt:Number;

// Массив имён ссылающихся на экземпляры картикон в библиотеке
var imageArr:Array = new Array("im1","im2","im3");
// Текущее изображение
var targetImage:Number = 1;
// Следующее изображение
var nextImage:Number = 2;

function startSlide():Void {
        // На верхний слой кидаем начальное изображение
	target_mc.attachMovie(imageArr[targetImage],"image", 1);
        // Под него кладём следующее
	nextImage_mc.attachMovie(imageArr[nextImage], "image", 1);
        // Запускаем анимацию смены картинки
	mask_mc.gotoAndPlay(2);

        // Меняем id текущего изображения
	targetImage=nextImage;

        // Запускаем таймер на 12 секунд, далее рекурсивно вызываем функцию
	clearInterval(idInt);
	idInt = setInterval(startSlide, 12000);
	nextImage++;

	if (nextImage &gt; imageArr.length-1) {
		nextImage = 0;
	}
}

startSlide();</pre>
<address><span style="color: #888888;">Пример работы был сделан на период работы в студии</span> <a href="http://ample.ru/">Ample</a>.</address>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2009/12/02/slajd-shou/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Макет сайта для «GreenLife»</title>
		<link>http://blog.shoosh.ru/2009/11/16/maket-sajta-dlya-greenlife/</link>
		<comments>http://blog.shoosh.ru/2009/11/16/maket-sajta-dlya-greenlife/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:53:47 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Портфолио]]></category>
		<category><![CDATA[letcrew]]></category>
		<category><![CDATA[Логотип]]></category>
		<category><![CDATA[Макет]]></category>
		<category><![CDATA[Моё]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=1055</guid>
		<description><![CDATA[Салон цветов в Екатеринбурге. Задача. Создать макет сайта для Цветочного магазина Green Life. А вот и макеты: главная страница, страница галереи, логотип]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.greenlife66.ru/">Салон цветов в Екатеринбурге</a>.</p>
<blockquote><p><em>Задача</em>. Создать макет сайта для Цветочного магазина Green Life.</p></blockquote>
<p>А вот и макеты: <a href="http://farm3.static.flickr.com/2545/4106811194_7e62466479_b.jpg" rel="shadowbox[sbpost-1055];player=img;">главная страница</a>, <a href="http://farm3.static.flickr.com/2531/4106106167_1c9f7a4f44_b.jpg" rel="shadowbox[sbpost-1055];player=img;">страница галереи</a>, <a href="http://farm3.static.flickr.com/2579/4106900622_373695f769.jpg" rel="shadowbox[sbpost-1055];player=img;">логотип</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2009/11/16/maket-sajta-dlya-greenlife/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сайт на PureMVC + SWFAddres</title>
		<link>http://blog.shoosh.ru/2009/10/13/puremvc-plus-swfaddress/</link>
		<comments>http://blog.shoosh.ru/2009/10/13/puremvc-plus-swfaddress/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 18:30:59 +0000</pubDate>
		<dc:creator>Лобанов Алексей</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[SWFAddress]]></category>

		<guid isPermaLink="false">http://blog.shoosh.ru/?p=446</guid>
		<description><![CDATA[Это действительно надо! Задача. Создать флеш сайт с возможностью использования навигации, как на обычных html сайтах. И обеспечить модульность при разработке проекта. Инструменты: PureMVC, SWFAddress. Что происходит на сервере? На стороне сервера было реализовано следующее: по ссылке http://exampl.ru/catalog мы переходим на страничку с каталогом, но если мы добавим параметр /?xml то получаем данные с этой [...]]]></description>
			<content:encoded><![CDATA[<p>Это действительно надо!</p>
<blockquote><p><em>Задача.</em> Создать флеш сайт с возможностью использования навигации, как на обычных html сайтах. И обеспечить модульность при разработке проекта.</p></blockquote>
<p><em>Инструменты</em>: <a href="http://puremvc.org/component/option,com_wrapper/Itemid,160/">PureMVC</a>, <a href="http://www.asual.com/swfaddress/">SWFAddress</a>.</p>
<h3><span style="color: #993300;"><em>Что происходит на сервере?</em></span></h3>
<p>На стороне сервера было реализовано следующее: по ссылке <span style="color: #888888;">http://exampl.ru/catalog</span> мы переходим на страничку с каталогом, но если мы добавим параметр <span style="color: #888888;">/?xml</span> то получаем данные с этой страницы в формате xml. Для начала сделаем унифицированный xml документ со статичными аттрибутами <span style="color: #888888;">mod</span> и <span style="color: #888888;">view</span>, первый нам говорит &#8212; что за модуль мы должны загрузить, а второй сообщает нам как мы должны его отобразить:</p>
<pre class="js" name="code">&lt;data mod="nameOfModul" view="typeOfView"&gt;
...more...
&lt;/data&gt;</pre>
<p><strong><em>Например:</em></strong> имеется модуль галереи, у которого есть три представления:</p>
<ul>
<li>Просмотр всего списка (<span style="color: #888888;">view = allImage</span>)</li>
<li>Отображение выбранного изображения (<span style="color: #888888;">view = targetImage</span>)</li>
<li>И допустим вывод картинок по какому-то признаку (<span style="color: #888888;">view = sortBy</span>).</li>
</ul>
<p>В данном случае имя модуля остаётся неизменным <span style="color: #888888;">mod = gallery</span>, а имя представление модуля меняется соответственно на <span style="color: #888888;">allImage</span>, <span style="color: #888888;">targetImage</span>, <span style="color: #888888;">sortBy</span>, &#8212; говоря нашему приложению как надо обрабатывать эти данные.</p>
<h3><span style="color: #993300;"><em>Как с этим должна работать клиентская часть?</em></span></h3>
<p>Для начала разберёмся с адресной строкой (для этого использована библиотека <a href="http://www.asual.com/swfaddress/">SWFAddress</a>), так выглядит слушатель события реагирующий на изменение ссылки в адресной строке:</p>
<pre class="js" name="code">SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress);

function handleSWFAddress(e:SWFAddressEvent) {
    var paramArr:Array = new Array(); //массив параметров
    paramArr = e.value.split("/");
    var url : String = ""; // переменная с ссылкой на xml
    // формирем ссылку на xml документ
    for(var i : Number = 1;i &lt;= paramArr.length - 1; i++) {
        (paramArr[i] == "" || paramArr[i] == "#") ?
            null :
            url += "/" + paramArr[i];
    }
    var sufixUrl:String ="?xml"; //
    url == "" ?
        null :
        loadXmlData("example.ru/"+ url + sufixUrl);
    paramArr = null;
}</pre>
<p>Таким образом адресная строка вида <span style="color: #888888;">http://example.ru/#/catalog</span> будет распарсена и передана в качестве параметра методу <span style="color: #888888;">loadXmlData();</span> в виде ссылки <span style="color: #888888;">http://example.ru/catalog/?xml</span> на иксэмэль документ. После загрузки файла в в метод <span style="color: #888888;">choiseModule();</span> передаётся полученный нами <span style="color: #888888;">xml</span> документ. Его код можно посмотреть ниже:</p>
<pre class="js" name="code">private function choiseModule(dataXml:XML):void {
	switch (dataXml.@mod) {
		case "home":
			sendNotification(ApplicationFacade.HOME_DATA_SUCCESS,
                                                               dataXml);
		break;

		case "gallery":
			sendNotification(ApplicationFacade.GALLERY_DATA_SUCCESS,
                                                               dataXml);
		break;
        }
}</pre>
<p>Далее, как видно, данные передаются в зависимости от того какой модуль написан в атрибуте mod, и выполняется отображение конкретного представления. </p>
<p>Модульность реализуется очень просто при помощи фреймфорка PureMVC, как это делается я писать не буду, так как в интернете на данный момент очень много информации на эту тему. Просто дам немного ссылок на полезные ресурсы и файлы.</p>
<h3><span style="color: #993300;"><em>Ссылки</em></span></h3>
<ol>
<li><a title="download" href="http://puremvc.org/component/option,com_wrapper/Itemid,160/" target="_self">PureMVC</a> — это реализация <a href="http://ru.wikipedia.org/wiki/MVC">классического MVC</a> для Flash-платформы.
<ul>
<li><a title="Example gallery on PureMVC" href="http://demo.bumpslide.com/puremvc/puremvc_cs3_gallery_src.zip">Building a Flash site </a> (as 3.0)<a title="Example gallery on PureMVC" href="http://demo.bumpslide.com/puremvc/puremvc_cs3_gallery_src.zip"><br />
</a></li>
<li><a title="Example gallery on PureMVC" href="http://demo.bumpslide.com/puremvc/puremvc_cs3_gallery_src.zip">Gallery example</a> (as 3.0)</li>
<li><a href="http://digitalmonkstudio.com/blog/?p=14">Simple load random images</a> (as 2.0)<a href="http://digitalmonkstudio.com/blog/?p=14"><br />
</a></li>
<li><a href="http://trac.puremvc.org/Demo_AS2_FlashLite_Balloonatroid/browser/trunk">Ports, demos &amp;  utilities</a> (as 2.0)</li>
<li><a href="http://bafpug.com/wp-content/uploads/2009/03/puremvc.swf" rel="shadowbox[sbpost-446];width=640;height=385;">“PureMVC от теории к практике” &#8212; Валентин Железный</a></li>
</ul>
</li>
<li>Bumpslide Framework <a href="http://code.google.com/p/bumpslide/downloads/list">AS 3.0</a> and <a href="http://bumpslide.sourceforge.net/">AS 2.0</a> (Много полезных компонентов + )</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.shoosh.ru/2009/10/13/puremvc-plus-swfaddress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

