<?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>mega.genn.org &#187; flash</title>
	<atom:link href="http://mega.genn.org/blah/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://mega.genn.org</link>
	<description>Откровения синего кубика</description>
	<lastBuildDate>Tue, 08 Nov 2011 07:55:39 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Эппл представляет: 2010 ≠ 1984</title>
		<link>http://mega.genn.org/2010/2010-is-not-1984-by-apple/</link>
		<comments>http://mega.genn.org/2010/2010-is-not-1984-by-apple/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 07:22:17 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[stuff]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[baka-baka]]></category>
		<category><![CDATA[emo]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[genn.org]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=2256</guid>
		<description><![CDATA[Вчера Стив Джобс рассказал о том, почему на айпаде и айфоне нет и не будет флеша и сгенерированных в среде разработки Adobe Flash программ. Кто-то воспринимает это как ужасное нападение на свободу личности и превращение Стива Джобса в Большого брата. Я считаю, что ничего страшного в этом нет. Я, чей сайт принципиально сделан с использованием [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2010/04/flash-no-flash.png" alt="flash-no-flash" width="593" height="196" /></p>
<p>Вчера Стив Джобс <a href="http://www.apple.com/hotnews/thoughts-on-flash/">рассказал</a> о том, почему на айпаде и айфоне нет и не будет флеша и сгенерированных в среде разработки Adobe Flash программ. Кто-то воспринимает это как ужасное нападение на свободу личности и превращение Стива Джобса в Большого брата. Я считаю, что ничего страшного в этом нет. Я, чей <a href="http://genn.org/">сайт</a> принципиально сделан с использованием Adobe Flash по объективным причинам («вес» самого сайта и правильная отработка всех событий), и кто <a href="http://mega.genn.org/ru/blah/flash/">написал немало постов об этой технологии</a>. Вернемся к объяснению Стива Джобса. Оно четкое, понятное и, если относиться к нему непредвзято, объясняет позицию компании очень хорошо. <span id="more-2256"></span> Особенно хочу подчеркнуть ту часть, где Стив Джобс прямым текстом говорит: айфон и айпад просто не потянут Adobe Flash в текущем виде — батарейки будут садиться как сумасшедшие, процессор будет греться как сковородка, а происходящее на экране все равно будет тормозить. Объяснение, чем отличается для устройства показ видео в H.264 от показа видео во флеше, вообще достойно занесения в справочники. Просто и доходчиво: первое декодируется на специальном чипе, а второе при помощи софта, требуя кучу ресурсов.</p>
<p>Когда я узнал, что мой сайт не будет показываться на моем новеньком айфоне, я даже расстроился. Потом успокоился, поняв, что пользователь все равно не сможет пользоваться красивым разъезжающим меню, основанном на положении мышки на экране, потому что в touch-интерфейсах функции «курсор над объектом» просто не существует. Об этом Стив Джобс тоже упомянул (правда ссылку на мой сайт не дал ;).</p>
<h2>Ответ Эдоби</h2>
<p>Я ожидал, что Эдоби не вступит в дискуссию, которую ему ненавязчиво навязал Стив Джобс. Они очень много сделали в CS5 для развития интерактивной составляющей и нью-медиа, но сделали это на основе флеша. Мне понятно их недовольство и может даже смущение от того, что они могли стать первой компанией, которая предложит средства для создания интерактивных медиа для, не будем скрывать, скоро самого перспективного рынка планшетных компьютеров во главе с айпадом. Тем не менее, я уверен, что шагом Эдоби должна была стать встреча с Эппл и разговор с тем же Джобсом. Он любит общаться. Поговорить именно о нью-медиа, куда и целился Эдоби (стоит только посмотреть на развитие Индизайна в CS5 и это становится очевидным). Может быть модифицировали бы чуть-чуть формат PDF, и Эдоби снова был бы на коне, а Apple, Wired и Adobe сняли бы очередной ролик о том, как круто журнал Wired сразу попадает из верстки на айпад. Но нет, генеральный директор Эдоби Шантану Нарайен (Shantanu Narayen) решил по каждому пункту <a href="http://blogs.wsj.com/digits/2010/04/29/live-blogging-the-journals-interview-with-adobe-ceo/">ответить</a> «Эппл не правы, а мы тут все д&#8217;Артаньяны».</p>
<p><object id="wsj_fp" width="512" height="363"><param name="movie" value="http://s.wsj.net/media/swf/main.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="flashvars" value="videoGUID=5C074A32-B7A3-47EC-9B53-E7A8A5A04E49&#038;playerid=1000&#038;plyMediaEnabled=1&#038;configURL=http://wsj.vo.llnwd.net/o28/players/&#038;autoStart=false" base="rtmpt://wsj.fcod.llnwd.net/a1318/o28/video"name="main"></param><embed src="http://s.wsj.net/media/swf/main.swf" bgcolor="#FFFFFF"flashVars="videoGUID=5C074A32-B7A3-47EC-9B53-E7A8A5A04E49&#038;playerid=1000&#038;plyMediaEnabled=1&#038;configURL=http://wsj.vo.llnwd.net/o28/players/&#038;autoStart=false" base="rtmpt://wsj.fcod.llnwd.net/a1318/o28/video" name="main" width="512" height="363" seamlesstabbing="false" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object></p>
<p>Думаю, что не надо объяснять, чем отличается директор Эппл от любого другого директора. Директор Стив Джобс умеет убеждать, объяснять и продавать. В других компаниях для этого есть евангелисты и специалисты по связям с общественностью. Я очень надеюсь, что именно они возьмутся за дело. Время за евангелистами Эдоби и экспертами, которых эта компания нанимает. Я общался с некоторыми из них, видел их работу и остался очень приятно впечатлен. Учитывая то, что Эдоби — солидная компания, которой не надо с пеной у рта кричать что-то типа «пусть кривой, но самый быстрый браузер, это всего лишь бета», они могут очень красиво построить коммуникацию и сотрудничать с Эппл для пользы всех, включая научно-технический прогресс.</p>
<p>На <a href="http://mega.genn.org/ru/2010/adobe-kadabra-creative-suite-5/">презентации Adobe CS5</a> все пользовались компьютерами и ноутбуками Apple. На всех мероприятиях Эдоби, на которых мне довелось побывать, используются именно они. Маркус Бледовски (Markus Bledowski), который представлял пакет программ для post production, начал презентацию на каком-то десктопном не-эппл компьютере под управлением Windows 7. Сделал он это, потому что его компьютер — двухлетний беленький макбук. Маркус не выдержал сражения с интерфейсом, как мне показалось, и в дальнейшем демонстрировал все программы и работу с ними со своего макбука, все время повторяя: «Смотрите! Даже на моем белом малыше не тормозит, как круто Эдоби все оптимизировали!».</p>
<p>Впрочем, на <a href="http://mega.genn.org/ru/2008/envision-praha/">Envision Event</a> устроенном Майкрософтом в Праге, почти у всех приглашенных экспертов тоже были ноутбуки Эппл ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2010/2010-is-not-1984-by-apple/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Flash 10 Antipasti и жизнь URL</title>
		<link>http://mega.genn.org/2009/flash-antipasti/</link>
		<comments>http://mega.genn.org/2009/flash-antipasti/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 13:22:56 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[stuff]]></category>
		<category><![CDATA[baka-baka]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[gui]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=1420</guid>
		<description><![CDATA[Я помню как все начиналось и могу рассказать об этом. Давным давно, когда динозавры пользовались модемами, сайты называли домашними страничками, а слово «google» ничего не значило, у сайтов все равно были URL&#8217;ы. Мы называли их адресами сайтов и, если хотелось повыпендриваться, могли даже сказать «уникальные адреса веб-узлов, размещенных в глобальной сети Интернет». Программисты, которых сейчас [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2009/04/sorrymario.jpg" alt="Sorry Mario" title="Sorry Mario" width="636" height="247" /></p>
<p>Я помню как все начиналось и могу рассказать об этом. Давным давно, когда динозавры пользовались модемами, сайты называли домашними страничками, а слово «google» ничего не значило, у сайтов все равно были URL&#8217;ы. Мы называли их адресами сайтов и, если хотелось повыпендриваться, могли даже сказать «уникальные адреса веб-узлов, размещенных в глобальной сети Интернет». Программисты, которых сейчас называют айти-специалистами, были предоставлены сами себе в вопросах, касавшихся веб-программирования, что и привело к ожидаемым результатам — странным адресам страниц. Стандартным примером в те времена мог послужить адрес вроде <i>blablabla.com/?sid=23l&#038;pid=ln123&#038;youare=cookiemonster</i>, который иногда был обозначением страницы поиска, а через пять минут уже мог вести в каталог товаров. Тогда словно паладины сил добра без страха в сердце появились новые ребята. Они выглядели странно, занимались только консультациями и называли себя <i>юзабилистами</i>. <span id="more-1420"></span></p>
<p>Они обозначили конец эпохи Программистских вакханалий и каким-то образом привели к исчезновению динозавров. Было бы удивительно, если бы юзабилисты ничего не сказали об адресах страниц, поэтому они не стали молчать. На камне высекли самое важное утверждение, которое касалось URL&#8217;ов: <i>Ибо сказано, что есмь URL и быть ему читаемым и вести постоянно на одну и ту же страницу, дабы любой пользователь или пользовательница могли его разуметь и им обмениваться</i>. Все знают, что любой опубликованный в интернете факт становится достоверным как только его проиндексирует гугл. Так случилось и в этот раз. С того момента люди стали наслаждаться читаемыми и понятными адресами страниц, содержание которых не менялось со временем. Дошло до того, что это <a href="http://mega.genn.org/2008/flash-deeplinking/">прижилось даже на флеш и аякс-сайтах</a>, а адреса определенных страниц или разделов стали выглядеть примерно так: <i>blablabla.com/products/media-and-socialising/you-ve-got-rickrolld</i>.</p>
<p>После всех эти революционных событий началась социо-сетевая мания, так называемый вебдваноль. Большие объемы инфорамции привели к тому, что ее надо было хоть как-то размещать, не особенно заботясь о читаемости адреса. На передний план вышел обмен и распространение ссылок. Веб-разработчики и юзабилисты должны были сделать все, чтобы пользователь без труда мог разослать адрес конкретной страницы с видео-роликом или шуткой всем, до кого дотянется. Вот так и появились замечательные кнопки «Скопировать адрес этой страницы/видео/порно/статьи». Недостаточная стандартизация и по-прежнему негодные технологии привели к тому, что самым удобным инструменом для запихивания информации в буфер обмена пользователя оказался флеш. Когда пользователи кликали на кнопку, специальный яваскрипт встраивал в страницу уже готовый маленький флеш-ролик, который и отвечал за копирование. </p>
<p>Поскольку никто никогда не относился к буферу обмена очень серьезно, считая, что хранить в нем важную информацию так же умно, как и рабочие документы в корзине, не была предусмотрена защита от несанкционированного копирования в буфер обмена чего-либо из флеш-ролика без ведома пользователя. Осознав это, Adobe сообщил: <i>С этого момента (Flash 10) если пользователю хочется что-то скопировать, то он должен повзаимодействовать с роликом. Буквально: пользователь должен кликнуть на кнопку или ссылку в ролике, чтобы тот мог получить доступ к буферу обмена</i>. <a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes_02.html#head31">Переложив</a>, таким образом, вину за заполнение буфера всякой ерундой на пользователя, Adobe умыл руки.</p>
<p>К несчастью, этот ход компании, разрабатывающей в наши дни флеш, привел к тому, что описанная выше технология копирования адреса страницы в буфер обмена перестала работать. К счастью, <a href="http://cssing.org.ua">akella</a> придумал как с этим <a href="http://cssing.org.ua/2009/04/15/copy-to-clipboard-javascrip/">бороться</a>: можно создать флеш-ролик, который будет вести себя как кнопка, а изображения кнопки в разном состоянии передавать в него параметром как и текст, который надо скопировать. Я помог ему, создав такой ролик.</p>
<p><object width="636" height="48"><param name="movie" value="http://mega.genn.org/=^_^=/uploads/2009/04/copybtn.swf" /><param name="flashvars" value='normal=http://mega.genn.org/=^_^=/uploads/2009/04/btn0.png&#038;pressed=http://mega.genn.org/=^_^=/uploads/2009/04/btn2.png&#038;hover=http://mega.genn.org/=^_^=/uploads/2009/04/btn1.png&#038;clipboard=http://mega.genn.org/ &#8212; schlong is schlonger' /><embed src="http://mega.genn.org/=^_^=/uploads/2009/04/copybtn.swf" flashvars='normal=http://mega.genn.org/=^_^=/uploads/2009/04/btn0.png&#038;pressed=http://mega.genn.org/=^_^=/uploads/2009/04/btn2.png&#038;hover=http://mega.genn.org/=^_^=/uploads/2009/04/btn1.png&#038;clipboard=http://mega.genn.org/ &#8212; schlong is schlonger' width="636" height="48"  type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
</object></p>
<p class="imgdesc">Если нажать на кнопку, то в буфер обмена скопируется текст «http://mega.genn.org/ — schlong is schlonger»</p>
<p>Вот так выглядит код встраивания с небольшим улучшением в виде апострофов вместо знаков дюйма для значения <i>flashvars</i>, чтобы сделать возможным копирование html-тагов с параметрами (допустим, что все файлы находятся в одной папке):</p>
<ol class="h4x0r">
<li><code>&lt;object width="636" height="48"&gt;</code></li>
<li><code>&lt;param name="movie" value="copybtn.swf"></code></li>
<li><code>&lt;param name="flashvars" value='<b>normal=</b>btn0.png&#038;<b>pressed</b>=btn2.png&#038;<b>hover</b>=btn1.png&#038;<b>clipboard</b>=&lt;a href="http://mega.genn.org/"&gt;mega.genn.org&lt;/a&gt; &#8212; schlong is schlonger' /&gt;</code></li>
<li><code>&lt;embed src="copybtn.swf" flashvars='<b>normal</b>=btn0.png&#038;<b>pressed</b>=btn2.png&#038;<b>hover</b>=btn1.png&#038;<b>clipboard</b>=&lt;a href="http://mega.genn.org/"&gt;mega.genn.org&lt;/a&gt; &#8212; schlong is schlonger' width="636" height="48"  type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;</code></li>
<li><code>&lt;/object&gt;</code></li>
</ol>
<p>David-m, комментируя пост Юры, заметил, что удобней было бы сделать прозрачный флеш-ролик с теми же функциями, который можно расположить над любым элементом на странице. Я сделал и такой вариант. Из всех параметров, разумеется, остался только <i>clipboard</i>. Если понравилось, то логично будет <a href="http://mega.genn.org/=^_^=/uploads/2009/04/copybtns.zip">скачать оба swf&#8217;а в архиве</a> (zip, 4 Кбайта).</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2009/flash-antipasti/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>FLV-video preloader (Flash, AS2, working solution, howto)</title>
		<link>http://mega.genn.org/2009/flv-video-preloader-flash-as2-working-solution-howto/</link>
		<comments>http://mega.genn.org/2009/flv-video-preloader-flash-as2-working-solution-howto/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 06:35:53 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=1103</guid>
		<description><![CDATA[Однажды утром, когда я дорисовывал логотипы для одних милых ребят, меня поприветствовал Геллер. Его надо было спасать. Каждый может попасть в такую ситуацию: заканчивается кислород в баллоне, а до ближайшего телепорта восемь парсеков, любимая девушка угнала машину с полным багажником кокаина или необходим простенький флеш-ролик. Удивительно, но Артему как раз не хватало ролика с проигрыванием [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2009/02/75percentsflv.jpg" width="460" height="209" alt="Preloading .flv" /></p>
<p>Однажды утром, когда я дорисовывал логотипы для одних милых ребят, меня поприветствовал <a href="http://ageller.ru/">Геллер</a>. Его надо было спасать. Каждый может попасть в такую ситуацию: заканчивается кислород в баллоне, а до ближайшего телепорта восемь парсеков, любимая девушка угнала машину с полным багажником кокаина или необходим простенький флеш-ролик. Удивительно, но Артему как раз не хватало ролика с проигрыванием видео. Ничего особенного: первый кадр, по клику на который начинается загрузка видео, а после загрузки оно показывается от начала до конца и останавливается на первом кадре. Если вновь нажать на первый кадр, то видео покажется сначала. Ничего особенного, если не учитывать предзагрузки .flv.<span id="more-1103"></span></p>
<h2>Как добиться загрузки .flv</h2>
<p>Когда я написал кусок со всякими <i>NetStream&#8217;ами</i>, в голову пришла идея, что все уже сделано до нас. Пятнадцать секунд общения с поисковыми способностями гугла подтвердили мое предположение: ребята из Bloommedia <a href="http://www.bloommedia.co.uk/blog/technical/preload-flv-video-in-flash-actionscript-20-2">уже придумали</a> «How to preload FLV video in flash with actionscript 2.0». К сожалению, как это отражено и в комментариях к их посту, пример не рабочий: при первом просмотре видео все равно дергается и толку от прелоадера мало. К счастью, все поправимо, и сделать это довольно легко! Ниже пример работы прелоадера и исправленный исходный код, который не только нормально выполняет функции прелоадера, но и позволяет начинать загрузку по клику на видео.</p>
<p>	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="460" height="195" id="slumdog" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="/=^_^=/uploads/2009/02/slumdog.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="/=^_^=/uploads/2009/02/slumdog.swf" quality="high" bgcolor="#000000" width="460" height="195" name="slumdog" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
	</object></p>
<p class="imgdesc">Пример работы flv-прелоадера (размер загружаемого файла 2,6 Мбайта)</p>
<p>Не буду перегружать страницу полным исходным кодом, ведь его можно <a href="/=^_^=/uploads/2009/02/slumdog.fla">скачать</a> (.fla, 304 Кбайта). Остановлюсь лишь на существенном отличии от кода Bloommedia.</p>
<ol class="h4x0r">
<li><code><i>// после того, как состоялась загрузка</i></code></li>
<li><code>mns.seek(0); <i>// перематываем на начало</i></code></li>
<li><code><i>// mns.play("dom-kelly.flv");  — так включается проигрывание у Bloommedia. Это неправильно и лишь начинает загрузку заново (ничего не кешируется в большинстве случаев)</i></code></li>
<li><code>mns.pause(); <i>// снимает с паузы и начинает проигрывание загруженного ролика (кешируется всегда!)</i></code></li>
</ol>
<p>Итак, если использовать метод <i>NetStream pause()</i>, а не <i>play()</i>, то пользователь не будет обречен наблюдать рывки загружаемого видео. У него все покажется хорошо.</p>
<h2>Briefly in English</h2>
<p>Just in case any wonderer visited this page in order to make working flv-video preloader, I&#8217;ll repeat the main statements.</p>
<p>I found <a href="http://www.bloommedia.co.uk/blog/technical/preload-flv-video-in-flash-actionscript-20-2/trackback">almost working example</a> from Bloommedia. The problem was it didn&#8217;t cache the video. To solve it I just replaced <i>play()</i> method after video is loaded with <i>pause()</i> method. Unfixed version worked like this: loaded the whole movie, scrolled to the begining of it, then told NetStream to start loading it again (and playing while loading) in hope, that video was cached. Now it works the next way: after loading the whole movie player scrolls to the begining and starts playing it. Looks brilliant, right? ;)</p>
<p>You can <a href="/=^_^=/uploads/2009/02/slumdog.fla">download source of flv-video preloader</a> (.fla, 304 Kbytes).</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2009/flv-video-preloader-flash-as2-working-solution-howto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash на iPhone? No-no-no!</title>
		<link>http://mega.genn.org/2008/flash-iphone/</link>
		<comments>http://mega.genn.org/2008/flash-iphone/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 09:16:15 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[genn.org]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=892</guid>
		<description><![CDATA[Все чаще и чаще слышно со всех сторон, что флеш скоро появится на айфоне. На сайте Please fix the iPhone это требование третье по популярности. Что ж, когда Flash завоюет место в iPhone Safari, айфон-версию моего сайта можно будет выбросить в корзину и поджечь ее. К несчастью радость меня не посещает. Флеш появится не раньше,чем [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2008/10/flash-and-iphone.jpg" alt="flash-and-iphone" width="460" height="300" /></p>
<p>Все чаще и чаще слышно со всех сторон, что флеш скоро появится на айфоне. На сайте <a href="http://pleasefixtheiphone.com/">Please fix the iPhone</a> это требование третье по популярности. Что ж, когда Flash завоюет место в iPhone Safari, <a href="http://mega.genn.org/2008/site-for-iphone/">айфон-версию моего сайта</a> можно будет выбросить в корзину и поджечь ее. К несчастью радость меня не посещает. Флеш появится не раньше,чем Apple разрешит интерпретаторы интерпетируемых языков программирования (это не тавтология). Когда произойдет это эпохальное событие, а оно вполне может произойти, ведь NDA для разработчиков уже отменили, настанет эра вселенского покорения самых отсталых уголков мира айфоном. Java — интерпретируемый язык. Можно будет портировать кучу всякой ерунды с WM безо всяких проблем одним кликом мышки. Если вы спросите меня, почему медлит Apple, то  я отвечу, что не знаю. Может быть они разрабатывают новые интерпретаторы, а может вырабатывают собственную концепцию противоречия миру. Время покажет. Не так давно мы верили, что за кассетами будущее, но пришли уменьшенные и более технологичные версии пластинок в виде DVD и CD. Посмотрим, что подарит нам завтрашний день и Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/flash-iphone/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Глянцевые черты фотографий во флеше</title>
		<link>http://mega.genn.org/2008/dynamic-image-smoothing-in-flash/</link>
		<comments>http://mega.genn.org/2008/dynamic-image-smoothing-in-flash/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 10:20:01 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gui]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=828</guid>
		<description><![CDATA[Неаккуратно сделанный флеш-ролик всегда можно узнать по присущим только флешу «водяным знакам качества»: возможности выделить мышкой текст на кнопках и отчаянному пикселению невекторных объектов. Порой, конечно, приходится ухудшать качество, чтобы не сильно грузить процессор, но это не то, о чем я говорю. Речь о свойстве Allow smoothing у находящихся в Library растровых изображений. Что же [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2008/10/mini.jpg" alt="Mini watermark" width="460" height="285" /></p>
<p>Неаккуратно сделанный флеш-ролик всегда можно узнать по присущим только флешу «водяным знакам качества»: возможности выделить мышкой текст на кнопках и  отчаянному пикселению невекторных объектов. Порой, конечно, приходится ухудшать качество, чтобы не сильно грузить процессор, но это не то, о чем я говорю. Речь о свойстве <i>Allow smoothing</i> у находящихся в <i>Library</i> растровых изображений. Что же делать, когда эти изображения не в библиотеке символов?<br />
<span id="more-828"></span><br />
<img src="http://mega.genn.org/=^_^=/uploads/2008/10/allow.jpg" alt="Allow smoothing"  width="460" height="308"" /></p>
<p class="imgdesc">С включенным свойством «Allow smoothing» (пункт «Properties…» контекстного меню растрового объекта в библиотеке) фотографии всегда будут выглядеть дружелюбно (одно из значений слова «smooth»)</p>
<h2>Неожиданные преграды и их нетрадиционное преодоление</h2>
<p>В субботу утром я решил помочь американским товарищам с сайтом, на котором представлены красивые фотографии красивых машинок. Специфика представления фотографий подразумевала изменение их размера в зависимости от размера окна броузера. Ничего особенного, если не считать, что вплоть до восьмой версии флеша Macromedia, а нычне Adobe, их авторы так и не удосужились дать возможность allow smoothing для динамически подгружаемых растровых изображений.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="460" height="337" id="smoother" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="http://mega.genn.org/w=^_^=/uploads/2008/10/smoother.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="http://mega.genn.org/=^_^=/uploads/2008/10/smoother.swf" quality="high" bgcolor="#000000" width="460" height="337" name="smoother" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
	</object></p>
<p class="imgdesc">Достаточно навести курсор на изображение Mini, чтобы увидеть, как плохо выглядят растровые изображения с измененными начальными параметрами (угол наклона, размер) без сглаживания во флеше</p>
<p style="margin-left: 10px; padding-left: 30px; border-left: 3px solid #005bcd;"><i>Update (спасибо, Женя)</i><br />Начиная с девятой версии флеша есть свойство <i>movieClip.forceSmoothing</i>. Когда оно равно <i>true</i>, изображение изменяет свой размер со сглаживанием. Дальнейший текст не убираю для истории и флеша младше девятой версии, но проблема решается куда проще: <i>movieClip.forceSmoothing=true</i>.</p>
<p>Несмотря на отсутствие легких путей решения проблемы в Flash 8 и младше, как это часто бывает с флешем, нашелся не самый сложный обходной путь. Подгружаем фотографию, после чего создаем объект <i>BitmapData</i>, куда и переводим загруженное изображение. Оказывается, ничего не стоит включить сглаживание при этой процедуре. После того, как изображение загружено, а сглаживание включено, «отрисовываем» изображение.</p>
<ol class="h4x0r">
<li><code>import flash.display.*; <i>// подгружаем необходимую для работы с BitmapData библиотеку</i></code>
</li>
<li><code>_root.createEmptyMovieClip("pic",_root.getNextHighestDepth()); <i>// сюда поместим картинку со сглаживанием</i></code></li>
<li><code>_root.createEmptyMovieClip("tmpic",_root.getNextHighestDepth()); <i>// в этот символ загрузим jpeg</i></code></li>
<li><code>_root.tmpic._visible=false;</code></li>
<li><code>… <i>// опускаем код прелоадера, файл загружается в _root.tmpic</i></code></li>
<li><code>… <i>// дальнейший код выполняется после завершения загрузки изображения</i></code></li>
<li><code>var bitmap:BitmapData = new BitmapData(</code></li>
<li><code style="padding-left: 3em;">_root.tmpic._width,</code></li>
<li><code style="padding-left: 3em;">_root.tmpic._height,</code></li>
<li><code style="padding-left: 3em;">true);</code></li>
<li><code></code></li>
<li><code>_root.pic.attachBitmap(</code></li>
<li><code style="padding-left: 3em;">bitmap,</code></li>
<li><code style="padding-left: 3em;">_root.pic.getNextHighestDepth(),</code></li>
<li><code style="padding-left: 3em;">"auto",</code></li>
<li><code style="padding-left: 3em;">true); <i>// этот параметр включает сглаживание</i></code></li>
<li><code></code></li>
<li><code>bitmap.draw(_root.tmpic); <i>// переносим фотографию на холст ;)</i></code></li>
</ol>
<p>Пример рабочий, проверено на себе. Поскольку я никак не могу заставить себя полностью перебраться на AS3, программный код написан для Action Script 2, да и требования к сайту вынуждали пользоваться именно этой версией. Но настанет тот час, и я чувствую, что очень скоро, когда я буду вынужден портировать этот код, и не только его, на Action Script 3 или даже выше ;)</p>
<h2>***</h2>
<p>Я уверен, что не открыл революционный способ (поиск по интернету показал, что я не один такой умный). Тем не менее, уверен, что это простое решение наверняка будет полезным, ведь вопросы об этом мне задают с завидной регулярностью. </p>
<p>Из того же поиска по интернету стало известно, что предложенный выше способ не будет работать, если подгружать изображения с других доменов. Вроде бы есть решения и для этой проблемы, но все они, насколько я заметил, сводятся к совету сделать свой прокси и грузить изображения через него. В это же время <a href="http://www.yswfblog.com/blog/2007/08/29/flickr-now-even-more-flash-friendly/">flickr подружился с флешем</a>, так что писать интерфейсы для работы с фотографиями с этого ресурса уже не составит труда.</p>
<p>Хочется верить, что в ожидаемом и анонсируемом <a href="http://www.adobe.com/products/flash/">Flash CS4</a> встроят не только поддержку 3d (да-да, там будет какой-то псевдо-трехмерный инструментарий), но и кучу недостающих мелочей. Таких как, например, dynamic image smoothing, который появился в Flash CS3.</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/dynamic-image-smoothing-in-flash/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Оптимизируя оптимизированного</title>
		<link>http://mega.genn.org/2008/big-flash-collider/</link>
		<comments>http://mega.genn.org/2008/big-flash-collider/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 18:19:42 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[numbers]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=698</guid>
		<description><![CDATA[Воскресным утром я осуществил то, что давно собирался сделать: всерьез взялся за Action Script 3. Разобравшись в синтаксисе и принципах я решил сделать что-то простое и ненавязчивое, но в то же время дающее подергать за самые частые задачи, которые приходится делать, создавая флеш-сайты или флеш-приложения. Ничего сложного в AS3, кроме огромного количества файлов для любого [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2008/09/flashoptimisation.png" alt="Flash optimum" width="460" height="252" /></p>
<p>Воскресным утром я осуществил то, что давно собирался сделать: всерьез взялся за Action Script 3. Разобравшись в синтаксисе и принципах я решил сделать что-то простое и ненавязчивое, но в то же время дающее подергать за самые частые задачи, которые приходится делать, создавая флеш-сайты или флеш-приложения. Ничего сложного в AS3, кроме огромного количества файлов  для любого хоть чуточку серьезного проекта, нет. Мало того, всплыли воспоминания о юности, в которой я стал магистром технических наук и software engineer — дорвавшись до нормального объектно-ориентированного программирования я забыл о еде, питье и вообще почти обо всем.</p>
<p>Теперь о поставленной себе задаче. Вчера за <i>quattro formaggi</i> <a href="http://cssing.org.ua/">Юра</a> рассказал об интересном посте, который он сейчас пишет. Я предложил проиллюстрировать, что одну из описываемых задач оптимальнее всего делать на флеше. Этой задачей я и занялся, сделав флеш-ролик используя AS3. Если бы я писал на AS2, то все заняло бы не более 20 минут. С копанием в устройстве и работе Action Script 3 я справился за 40 минут. Итак, что же я делал.<br />
<span id="more-698"></span><br />
На экране есть несколько блоков, они могут располагаться друг за другом таким образом, чтобы всегда оптимально заполнять окно. У них есть максимальная ширина, но они могут изменять ее в меньшую сторону и прыгать со строки на строку. Картинка ниже сделает это объяснение более понятным:</p>
<p><img src="http://mega.genn.org/=^_^=/uploads/2008/09/sample.jpg" alt="How it works" width="456" height="196" /></p>
<p>Приводить весь первоначальный код не буду, он слишком велик для публикации просто так в посте. Кто хочет, может <a href='http://mega.genn.org/=^_^=/uploads/2008/09/main-old.as'>скачать</a> и полюбоваться. Первоначальный же .fla не сохранился, но он не так уж необходим ;)</p>
<p>После компиляции флеша я получил аккуратный файл размером 4 Кбайта, отправил Юре и отправился читать <a href="http://www.avatarpress.com/darkblue/">Dark Blue</a> Воррена Эллиса (<a href="http://en.wikipedia.org/wiki/Warren_Ellis">Warren Ellis</a>). После прочтения комикса мне захотелось решить какую-нибудь головоломку и я взялся за оптимизацию флеш-ролика. Достигнуть желаемых 1024 байтов мне не удалось, но результат получился удовлетворительный.</p>
<h2>Оптимизация символов</h2>
<p>Первым делом я, разумеется, убрал встраивание шрифта, которым показывались цифры. Для этого достаточно и <i>_sans</i>. Само текстовое поле сделал шириной в два символа и удалил единицу, которую написал в нем еще при создании. Половину размера как рукой сняло ;) </p>
<p>После этого, я избавился от всех групп: вместо размещения блика в группе над нижней плашкой, я поднял его в слой повыше, сэкономив несколько байтов. Везде, где это было возможно, я убрал прозрачность: <i>Alpha: 100%</i> и никаких возражений!</p>
<h2>Оптимизация имен</h2>
<p>Следующим шагом стала оптимизация имен. Текстовое поле из <i>txt</i> стало просто <i>t</i>, <i>buttonBackground</i> — <i>b</i> и так далее. Это также сэкономило несколько десятков байтов. Функция <i>arr(e:Event)</i> в файле <i>main.as</i> стала называться просто <i>a(e:Event)</i>. Поскольку она вызывается  при изменении размеров окна <i>listener&#8217;ом</i>, это помогло уменьшить размер результирующего swf. Изменения же имен переменных никакого влияния на размер файла не оказали бы.</p>
<h2>Оптимизация исходного кода</h2>
<p>Когда оказалось, что во флеше уже менять нечего, я вспомнил как приятно было сдавать экзамен по системному программированию на третьем курсе. Мы проболтали с преподавателем часа три о методах оптимизации программ при компиляции.</p>
<p>Все переменные типа <i>Number</i> я сделал <i>int</i>, после чего убрал ненужные округления. Например, если при подсчете переменной типа <i>Number</i> мне необходимо было указывать</p>
<ol class="h4x0r">
<li><code>var colw:Number=Math.floor(stage.stageWidth/cols);</code></li>
</ol>
<p>то после того, как она стала <i>int</i>, операция / взяла на себя функции целочисленного деления:</p>
<ol class="h4x0r">
<li><code>var colw:int=stage.stageWidth/cols;</code></li>
</ol>
<p>После этого, не задумываясь ни секунды, я вынес повторяющийся кусок с расстановкой блоков в отдельную функцию. Поскольку эта функция вызывается при изменении размеров окна, я записал ее прямо в функцию, вызываемую <i>listener&#8217;ом</i>, которую, как мы уже знаем, стали звать <i>a</i>:</p>
<ol class="h4x0r">
<li><code>stage.addEventListener(Event.RESIZE, a);</code></li>
<li><code>…</code></li>
<li><code>function a(e:Event):void {</code></li>
<li><code style="padding-left: 2em;">var cols:int=Math.ceil(stage.stageWidth/300);</code></li>
<li><code style="padding-left: 2em;">var colw:int=stage.stageWidth/cols;</code></li>
<li><code style="padding-left: 2em;">for (var i:int = 0; i &lt; 30; i++) {</code></li>
<li><code style="padding-left: 4em;">var nB:Object=getChildAt(i);</code></li>
<li><code style="padding-left: 4em;">nB.b.width=colw;</code></li>
<li><code style="padding-left: 4em;">nB.x=i%cols*colw;</code></li>
<li><code style="padding-left: 4em;">nB.y=Math.floor(i/cols)*43;</code></li>
<li><code style="padding-left: 2em;">}</code></li>
<li><code>}</code></li>
</ol>
<p>Для вызова этой функции в конструкторе пришлось добавить следующее:</p>
<ol class="h4x0r">
<li><code>var e:Event;</code></li>
<li><code>a(e);</code></li>
</ol>
<p>Эта конструкция добавила 2 байта к размеру swf, но до этого мы сэкономили гораздо больше.</p>
<p>В конце-концов я убрал проверки деления на ноль (флеш даже не поморщился) и скомпилировал проект снова. Юра предостерег меня, чтобы я  не увлекся и не сделал оптимизацию настолько хорошей, что swf станет отрицательного размера. Мир в безопасности: БАК запущен, а файл с отрицательным размером у меня не получился. После всех манипуляций swf стал занимать 1149 байт. Больше в нем оптимизировать нечего. Для сравнения можно <a href='http://mega.genn.org/=^_^=/uploads/2008/09/blocks.zip'>скачать получившийся проект</a> (zip, 12,7 Кбайта). Мне кажется, что оптимизировать там уже нечего ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/big-flash-collider/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t ever call me Theodor</title>
		<link>http://mega.genn.org/2008/ted-co/</link>
		<comments>http://mega.genn.org/2008/ted-co/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 10:54:28 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[cinema]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[fan]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=603</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2008/09/main.jpg" alt="TED" width="460" height="375" " /></p>
<p>Ежегодно в Калифорнии (а где же еще?) собирается около 1000 человек, которые могут и хотят поделиться интересной информацией. Принимает их <a href="http://ted.com/">TED</a>. Это неэлитарная элитарная конференция, где люди, меняющие облик и дух современной жизни, выступают в роли то ли stand-up комедиантов, то ли университетских профессоров.</p>
<p>Глядя на на имя и профессию докладчика, даже если знаешь, что он снял сериал, завоевавший сердца многих, и <a href="http://mega.genn.org/2008/1-18-08/">Cloverfield</a>, или создал самую популярную поисковую систему и раздражающий AdSence, или даже просто написал очень популярную книгу, сложно угадать о чем пойдет речь.<br />
<span id="more-603"></span></p>
<h2>— Вот ваш кокаин. Спасибо, что без сдачи. Свободная каса!</h2>
<p>Я просмотрел далеко не все (просмотрю ли вообще когда-нибудь?), но мне особенно запомнился Стивен Левит (Steven Levitt) и его анализ нарко-экономики под названием «Почему наркодельцы все еще живут с родителями?». Он сравнивает банды с Макдональдсом и находит больше совпадений, чем можно себе представить.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="285" id="VE_Player" align="middle"><param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"></param><param NAME="FlashVars" VALUE="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/STEVENLEVITT_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true"></param><param name="quality" value="high"></param><param name="allowScriptAccess" value="always"></param><param name="bgcolor" value="#FFFFFF"></param><param name="scale" value="noscale"></param><param name="wmode" value="window"><embed src="http://static.videoegg.com/ted/flash/loader.swf" FlashVars="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/STEVENLEVITT_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true" quality="high" allowScriptAccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" width="320" height="285" name="VE_Player" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></param></object></p>
<p class="imgdesc">Аудио-запись выступления можно <a href="http://www.ted.com/index.php/talks/download/audio/52/talk/29">скачать в mp3</a> или <a href="itpc://www.ted.com/talks/podcast/id/29">добавить в iTunes</a>. Видео тоже можно <a href="itpc://www.ted.com/talks/podtv/id/29">добавить в iTunes</a> или же <a href="http://www.ted.com/index.php/talks/download/video/182/talk/29">скачать mp4</a> в упакованном виде (zip).</p>
<p>Несмотря на то, что докладчики выступают перед очень неоднородной аудиторией, каждое выступление — настоящий подкаст. Так что кроме информационной цели, TED полезен еще и с практической: при подготовке выступления перед публикой или записью подкаста полезно посмотреть как разнообразную информацию можно подать в понятной и интересной для всех форме.</p>
<h2>***</h2>
<p>Все ролики можно скачать в формате mp4, что, несомненно, сделает обладателей айфонов и айподов счастливыми. Для тех, у кого нет времени смотреть, но часто свободны уши, есть версия в mp3.</p>
<h2>Update</h2>
<p>Вот еще два замечательных выступления о том, как создавать и выводить продукт на рынок.</p>
<h2>Кетчуп, горчица, другие соусы</h2>
<p>Малкольм Гладуэлл (Malcolm Gladwell) про соус для спагетти.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="285" id="VE_Player" align="middle"><param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"></param><param NAME="FlashVars" VALUE="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/MALCOLMGLADWELL_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true"></param><param name="quality" value="high"></param><param name="allowScriptAccess" value="always"></param><param name="bgcolor" value="#FFFFFF"></param><param name="scale" value="noscale"></param><param name="wmode" value="window"><embed src="http://static.videoegg.com/ted/flash/loader.swf" FlashVars="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/MALCOLMGLADWELL_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true" quality="high" allowScriptAccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" width="320" height="285" name="VE_Player" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></param></object></p>
<p class="imgdesc"><a href="http://www.ted.com/index.php/talks/malcolm_gladwell_on_spaghetti_sauce.html">Скачать в разных форматах</a> можно на TED ;)</p>
<h2>Розовая корова с соевым молоком</h2>
<p>Сет Годин (Seth Godin) рассказывает о том, что производитель должен выделяться и делать интересные продукты, чтобы провоцировать <i>otaku</i> как метод коммуникации с потребителем. Что это? Расскажет Сет.</p>
<p><!--cut and paste--><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="432" height="285" id="VE_Player" align="middle"><param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"></param><param NAME="FlashVars" VALUE="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/SETHGODIN-2003_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true"></param><param name="quality" value="high"></param><param name="allowScriptAccess" value="always"></param><param name="bgcolor" value="#FFFFFF"></param><param name="scale" value="noscale"></param><param name="wmode" value="window"><embed src="http://static.videoegg.com/ted/flash/loader.swf" FlashVars="bgColor=FFFFFF&#038;file=http://static.videoegg.com/ted/movies/SETHGODIN-2003_high.flv&#038;autoPlay=false&#038;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&#038;forcePlay=false&#038;logo=&#038;allowFullscreen=true" quality="high" allowScriptAccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" width="432" height="285" name="VE_Player" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></param></object></p>
<p class="imgdesc"><a href="http://www.ted.com/index.php/talks/seth_godin_on_sliced_bread.html">Скачать в разных форматах</a> можно на TED ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/ted-co/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
<enclosure url="http://www.ted.com/index.php/talks/download/audio/52/talk/29" length="20231927" type="audio/mpeg" />
		</item>
		<item>
		<title>Сайт созданный для айфона</title>
		<link>http://mega.genn.org/2008/site-for-iphone/</link>
		<comments>http://mega.genn.org/2008/site-for-iphone/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 05:32:30 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[genn.org]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://mega.genn.org/?p=578</guid>
		<description><![CDATA[genn.org в Mac OS X Safari и iPhone Safari Недавно я рассказал о том, как правильно сделать иконку сайта так, чтобы на айфоне это выглядело очаровательно. Теперь же, на примере genn.org объясню, как я сделал так, чтобы мой флешевый сайт на айфоне показывал хоть что-то. &#60;link rel="apple-touch-icon" href="/apple-touch-icon.png" /&#62; &#60;link rel="stylesheet" type="text/css" media="only screen and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mega.genn.org/=^_^=/uploads/2008/08/isites.jpg" alt="genn.org both in Safari and iPhone Safari" width="460" height="250" /></p>
<p class="imgdesc">genn.org в Mac OS X Safari и iPhone Safari</p>
<p>Недавно я рассказал о том, <a href="http://mega.genn.org/2008/apple-touch-icons-and-iphone-sites/">как правильно сделать иконку сайта</a> так, чтобы на айфоне это выглядело очаровательно. Теперь же, на примере <a href="http://genn.org/">genn.org</a> объясню, как я сделал так, чтобы мой флешевый сайт на айфоне показывал хоть что-то.</p>
<ol class="h4x0r">
<li><code>&lt;link rel="apple-touch-icon" href="/apple-touch-icon.png" /&gt;</code></li>
<li><code>&lt;link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="css/iphone.css" /&gt;</code></li>
</ol>
<p>Первая строка помогает Сафари в айфоне найти нужную иконку по указанному адресу. Вторая строка подсказывает, какой css-файл использовать для отображения. Размер экрана айфона 320 х 480 пикселей, так что в условии и выставлена максимальная ширина.<br />
<span id="more-578"></span><br />
xHTML выглядит так:</p>
<ol class="h4x0r">
<li><code>&lt;div id="magic"&gt;</code></li>
<li><code style="padding-left: 3em;">&lt;!-- тут флеш --&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
<li><code>&lt;div id="style"&gt;</code></li>
<li><code style="padding-left: 3em;">&lt;!-- тут контент для айфона --&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
</ol>
<p>В css-файле не для обычного броузера написано, что надо спрятать div по имени <i>style</i>, а в css-файле для айфона написано, что надо спрятать <i>magic</i>. Вот, похоже, и все. Спасибо <a href="http://cssing.org.ua/">Юре</a> за помощь ;)</p>
<h2>Не получается</h2>
<p>Если сайт все равно не выглядит на айфоне так, как задумывалось, а спрятался в уголке и ждет пока его увеличат, или, что тоже бывает, растянулся на весь экран, то следует добавить следующую строку в заголовок xhtml-файла:</p>
<ol class="h4x0r">
<li><code>&lt;meta name = "viewport" content = "width = device-width"&gt;</code></li>
</ol>
<p>Для того, чтобы не дать пользователю увеличивать и уменьшать сайт на экране, надо добавить <i>user-scalable = no</i>:</p>
<ol class="h4x0r">
<li><code>&lt;meta name = "viewport" content = "width = device-width, user-scalable&nbsp;=&nbsp;no"&gt;</code></li>
</ol>
<p>В следующий раз расскажу о некоторых хитростях создания сайтов для айфонов, чтобы пользователи падали от восторга в обморок ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/site-for-iphone/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Рассказ о сайтах в G-Club</title>
		<link>http://mega.genn.org/2008/sites-in-g-club/</link>
		<comments>http://mega.genn.org/2008/sites-in-g-club/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:12:01 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[conference]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[emo]]></category>
		<category><![CDATA[fan]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[genn.org]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[laboratory 8]]></category>

		<guid isPermaLink="false">http://mega.genn.org/2002/03/08/sites-in-g-club/</guid>
		<description><![CDATA[Вчера мы с Акеллой по очереди рассказывали интересные вещи в G-Club. Акелла интересно и подробно рассказал о микроформатах, красиво показав, что это не больно и даже интересно. Я же показал на примере нескольких сайтов, как важно понимать для чего создается веб-сайт и как им будут пользоваться. Мастер-класс увенчался четырьмя правилами создания хорошего веб-сайта. Презентацию можно [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://mega.genn.org/=^_^=/uploads/2002/03/main.jpg' alt='(-_-); keynote'  width="460" height="200"/></p>
<p>Вчера мы с <a href="http://cssing.org.ua/">Акеллой</a> по очереди рассказывали интересные вещи в <a href="http://www.globallogic.com.ua/globallogic/index.php?option=com_content&#038;task=view&#038;id=17213&#038;Itemid=124">G-Club</a>. Акелла интересно и подробно рассказал о микроформатах, красиво показав, что это не больно и даже интересно. Я же показал на примере нескольких сайтов, как важно понимать для чего создается веб-сайт и как им будут пользоваться. Мастер-класс увенчался четырьмя правилами создания хорошего веб-сайта.<br />
<span id="more-499"></span><br />
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=right2party-1218096826536844-9&#038;stripped_title=usable-sites-lection-in-gclub" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=right2party-1218096826536844-9&#038;stripped_title=usable-sites-lection-in-gclub" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></p>
<p class="imgdesc">Презентацию можно <a href='http://mega.genn.org/=^_^=/uploads/2002/03/right2party.pdf' title='Какие сайты надо создавать, мастер-класс в G-Club'>скачать в формате PDF</a> (2.2 МБайта)</p>
<p>К сожалению, фотографий еще нет, а сам я на 10 дней улетаю из Украины. Надеюсь, что к моему возвращению уже смогу показать, как мы сидим с микрофонами и умным видом, глядя в iBook и MacBook Air, и рассказываем что-то крайне интересное. Было приятно встретить знакомых, надеюсь, друзья, что вам понравилось!</p>
<p>Место проведения — G-Club — довольно интересно. Там бесплатные пиво, орешки и игровые приставки. Жаль, что такого не было, когда я учился в университете, тогда я бы точно проводил там с однокурсницами все время, особенно на этапе создания курсовых работ ;)</p>
<h2>***</h2>
<p>Сегодня утром Юра сбросил ссылку на <a href="http://www.smashingmagazine.com/2008/08/05/7-essential-guidelines-for-functional-design/">7 Essential Guidelines For Functional Design</a>. Советую прочесть, это более развернутое описание тех правил, что я привел в конце мастер-класса. Просто great minds think alike ;) </p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/sites-in-g-club/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>айТриптих</title>
		<link>http://mega.genn.org/2008/apple-touch-icons-and-iphone-sites/</link>
		<comments>http://mega.genn.org/2008/apple-touch-icons-and-iphone-sites/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 15:28:16 +0000</pubDate>
		<dc:creator>Genn</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://mega.genn.org/2008/08/05/apple-touch-icons-and-iphone-sites/</guid>
		<description><![CDATA[Теперь моим сайтом и блогом можно любоваться и с айфона. При этом, если добавить любой из них на экран телефона в виде иконки, он будет обозначен своей уникальной красивой стеклянной пиктограммой (их хорошо видно на картинке вверху). Поскольку сеть изобилует ложными рекомендациями о том, как добиться такого результата (я про иконку), дальше я открою тайны [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/main.png' alt='Встретились ;)'  width="460" height="98"/></p>
<p>Теперь моим сайтом и блогом можно любоваться и с айфона. При этом, если добавить любой из них на экран телефона в виде иконки, он будет обозначен своей уникальной красивой  стеклянной пиктограммой (их хорошо видно на картинке вверху). Поскольку сеть изобилует ложными рекомендациями о том, как добиться такого результата (я про иконку), дальше я открою тайны правильного создания красивой пиктограммы. В завершение будут представлены скриншоты трех сайтов для айфона. Два из них рисовал я, а третий (mega) — обработанный плагин <a href="http://wordpress.org/extend/plugins/wptouch/">WPtouch</a>.<br />
<span id="more-490"></span></p>
<h2>Иконка на home screen телефона iPhone или плеера iPod Touch</h2>
<p>Нет ничего сложного в изготовлении подходящего файла. Неплохого результата можно добиться, если создать PNG размером 129 х 129 пикселей.</p>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/apple-touch-icons.png' alt='Apple touch icon'  width="460" height="150"/></p>
<p class="imgdesc">По всему интернету разбросаны размеры сторон иконок от 48  до 69 пикселей (for best results), но мы-то с Apple Inc. знаем их правильные длину и ширину</p>
<p style="margin-left: 10px; padding-left: 30px; border-left: 3px solid #005bcd;"><i>Update (спасибо <a href="http://res3t.livejournal.com/">r3s3t</a>)</i><br />Не смотря на то, что иконка на сайте Apple размером 129 на 129 пикселей, в руководстве разработчика указан размер 57 x 57 пикселей при разрешении 72 ppi. Действительно, в таком размере каждый пиксель на своем месте.  Надо отдать должное алгоритмам уменьшения картинки — 129 х 129 пикселей сжимаются в 57 х 57 пикселей настолько хорошо, что не используя пиксельную графику и не разберешься.</p>
<p><img src="http://mega.genn.org/=^_^=/uploads/2008/10/iphoneicons57.png" alt="57 vs 129" width="460" height="87" /></p>
<p style="margin-left: 10px; padding-left: 30px; border-left: 3px solid #005bcd;">Откуда же взялся размер 129 х 129 пикселей? Может он используется для айтьюнса или это задел для будущих разработок? Увидим ;)</p>
<p>После того, как файл будет на сервере, в заголовок каждой html-страницы следует добавить одну строку:</p>
<ol class="h4x0r">
<li><code>&lt;link rel="apple-touch-icon" href="/apple-touch-icon.png"/&gt;</code></li>
</ol>
<p class="imgdesc">/apple-touch-icon.png — имя и путь к файлу с иконкой</p>
<p>После всех этих процедур айфон поймет что за картинку ему использовать, обрежет ей уголки и заключит в стеклянный контейнер.</p>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/add2home.png' alt='Add icon to iPhone/iPod touch home screen'  width="320" height="244"/></p>
<h2>mega.genn.org</h2>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/mega.png' alt='iphoned mega.genn.org'  width="320" height="480"/></p>
<h2>genn.org | reborn</h2>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/genn.png' alt='iphoned genn.org'  width="320" height="480"/></p>
<h2>Hack &#038; Dev</h2>
<p>Совершенно случайно помог на выходных <a href="http://farcaller.net/">farcaller</a>&#8216;у сделать <a href="http://iphone.hackndev.org/">сайт</a>, посвященный замечательным разработкам его команды для айфона. В принципе, с этого сайта и начались все переделки моих ресурсов ;)</p>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/hnd1.png' alt='iphoned Hack &#038; Dev'  width="320" height="480"/></p>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/hnd2.png' alt='iphoned Hack &#038; Dev'  width="320" height="480"/></p>
<p><img src='http://mega.genn.org/=^_^=/uploads/2008/08/hnd3.png' alt='iphoned Hack &#038; Dev'  width="320" height="480"/></p>
<h2>***</h2>
<p>iPhone-версии <a href="http://genn.org/">genn.org</a>, <a href="http://iphone.hackndev.org/">iphone.hackndev.org</a> и <a href="http://apple.com/">apple.com</a> сверстал  <a href="http://akella.org.ua/">Акелла</a>. Хотя, постойте, Apple он не верстал ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mega.genn.org/2008/apple-touch-icons-and-iphone-sites/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

