<?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>Webisland :&#124;&#124;: do Design à Programação. Tudo pra Web</title>
	<atom:link href="http://www.webisland.com.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webisland.com.br/blog</link>
	<description>Webdesign, Programação, Tutoriais, Widgets</description>
	<lastBuildDate>Tue, 31 Aug 2010 04:34:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Inserindo código PHP em posts com Shortcode</title>
		<link>http://www.webisland.com.br/blog/inserindo-codigo-php-em-posts-com-shortcode/</link>
		<comments>http://www.webisland.com.br/blog/inserindo-codigo-php-em-posts-com-shortcode/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:19:38 +0000</pubDate>
		<dc:creator>Thiago Bussiki</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webisland.com.br/blog/?p=86</guid>
		<description><![CDATA[Renderize código PHP dentro de seu post ou página de forma segura com a Shortcode API. Vamos aprender como inserir um mapa do google, exibir informação do servidor e formatar pedaços do post.]]></description>
			<content:encoded><![CDATA[<p>O WordPress oferece uma forma simples, segura e bastante &#8216;clean&#8217; de misturar códigos PHP dentro de posts/páginas por meio da <a title="Shortcode API WordPress Codex" href="http://codex.wordpress.org/Shortcode_API" target="_blank">Shortcode API</a>. Funciona da seguinte forma:</p>
<ol>
<li>Crie uma função no arquivo de funções do tema, o <strong>functions.php</strong></li>
<li>Evoque a função registrada dentro do post/página envolvida por [] (colchetes)</li>
<li>O WordPress substituirá o shortcode pelo retorno da função</li>
</ol>
<p><strong>Um problema: </strong>criar uma shortcode que exibe a data e hora atual do servidor.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> datahora<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'d/m/Y HH:ii'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_shortcode<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Datahora'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'datahora'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>A nossa função não poderia ser mais simples. Mas ela precisa ser registrada para que o WordPress a reconheça. Quem faz isso é a função <strong>add_shortcode(nome_da_shorttag, nome_da_funcao_php)</strong>.</p>
<p>Pronto, agora basta criar um post com o conteúdo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>Datahora<span style="color: #009900;">&#93;</span></pre></div></div>

<h3>Inserindo parâmetros</h3>
<p>Parâmetros podem ser usados para refinar um shortcode.</p>
<p><strong>Um problema:</strong> inserir um mapa navegável, do Google Maps diretamente em nosso post.</p>
<p>Vamos escrever a função preparada para receber os parâmetros <strong>latitude/longitude</strong>, <strong>altura </strong>e <strong>largura </strong>do mapa.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mapa<span style="color: #009900;">&#40;</span><span style="color: #000088;">$atributos</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">extract</span><span style="color: #009900;">&#40;</span>
	shortcode_atts<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'ll'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'-15.570624,-56.087179'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'altura'</span>    <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">452</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'largura'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">350</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$atributos</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;&lt;iframe width=&quot;</span><span style="color: #0000ff;">'.$largura.'</span><span style="color: #0000ff;">&quot; height=&quot;</span><span style="color: #0000ff;">'.$altura.'</span><span style="color: #0000ff;">&quot; frameborder=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot; scrolling=&quot;</span>no<span style="color: #0000ff;">&quot;
 marginheight=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot; marginwidth=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot; src=&quot;</span>http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//maps.google.com/?ie=UTF8&amp;amp;</span>
 ll<span style="color: #339933;">=</span><span style="color: #0000ff;">'.$ll.'</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>spn<span style="color: #339933;">=</span><span style="color:#800080;">0.014469</span><span style="color: #339933;">,</span><span style="color:#800080;">0.018239</span>
 <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>z<span style="color: #339933;">=</span><span style="color: #cc66cc;">15</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>output<span style="color: #339933;">=</span>embed<span style="color: #0000ff;">&quot;&gt;&lt;/iframe&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_shortcode<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Gmap'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mapa'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>A nossa função <em>mapa</em> receberá um parâmetro que equivale a um array com os valores vindos do post. Perceba que a primeira coisa que fazemos é tratar os parâmetros com as funções <a href="http://php.net/extract">extract</a> e <a title="Shortcode_atts no Codex" href="http://codex.wordpress.org/Function_Reference/shortcode_atts" target="_blank">shortcode_atts</a>. A primeira é uma função PHP que converte as chaves de um array em nome de varável. Ex:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$arr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'nome'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Thiago'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pais'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Brasil'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">extract</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nome</span> <span style="color: #666666; font-style: italic;">// Thiago</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pais</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Brasil</span></pre></div></div>

<p>E <em>shortcode_atts</em> garante que os parâmetros não declarados no post terão um valor padrão, sendo assim, nenhum parâmetro é obrigatório. Vamos aplicar nosso mapa no post pra entender melhor.</p>
<p>[Gmap largura=650 altura=400]</p>
<p>Nosso mapa será renderizado no post com altura = 400 e largura = 650. Como não declaramos latitude/longitude (ll), o valor padrão a ser asumido será a coordenada <em>-15.570624,-56.087179</em>.</p>
<h3>Partes do post como parâmetro</h3>
<p>Nos exemplos acima usamos shortcodes <em>auto-encapsuladas</em>. Pense como tags XHTML (&lt;br /&gt;, &lt;img /&gt;). Podemos usar o próprio texto do post como parâmetro. Pra isso precisamos apenas encapsular esse texto com a shortcode, abrindo e fechando. Em nossa função PHP corresponderá ao nosso segundo parâmetro.</p>
<p><strong>Um problema:</strong> converter pedaços do nosso post em maíusculo.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> upper<span style="color: #009900;">&#40;</span><span style="color: #000088;">$atts</span><span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> <span style="color: #990000;">strtoupper</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_shortcode<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'upper-case'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'upper'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>No post:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">Quero somente [upper-case]esse pedaço do texto[/upper-case] em maíusculo</pre></div></div>

<h4>É bom saber que:</h4>
<ul>
<li><strong>shortcode_atts</strong> converte os atributos em <em>minúsculo, </em>então é melhor padronizar;</li>
<li>usar sempre <strong>return</strong> e não <em>echo</em> na função PHP. Evite que coisas estranhas aconteçam;</li>
<li>existe um terceiro parâmetro para as funções, usado para chamadas <em>calbacks</em>.</li>
</ul>
<h4>Referências:</h4>
<ul>
<li><a title="Download do arquivo de exemplo" href="http://www.webisland.com.br/blog/exemplos/shortcode_api/functions.phps">Arquivo de exemplo</a></li>
<li><a title="Shortcode API no CODEX" href="http://codex.wordpress.org/Shortcode_API" target="_blank">Shortcode API &#8211; Documentação WordPress</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webisland.com.br/blog/inserindo-codigo-php-em-posts-com-shortcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alternativas para aposentar a Arial (e Times, Verdana &#8230;)</title>
		<link>http://www.webisland.com.br/blog/alternativas-para-aposentar-arial-font-embeddin/</link>
		<comments>http://www.webisland.com.br/blog/alternativas-para-aposentar-arial-font-embeddin/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 00:24:49 +0000</pubDate>
		<dc:creator>Thiago Bussiki</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tipografia]]></category>

		<guid isPermaLink="false">http://www.webisland.com.br/?p=23</guid>
		<description><![CDATA[Não pense que Arial, Verdana, Times e cia são a única solução para a tipografia do seu site. Vamos mostrar 5 alternativas para você pode ampliar as opções de fonte, burlando as limitações que insistem em perseguir os webdesigners. As técnicas de fontes embutidas (embedding type) podem salvar seu design.]]></description>
			<content:encoded><![CDATA[<p>Buscar inspiração, desenhar, arquitetar a informação, fazer o recorte e por fim morrer em 5 ou 6 fontes. Uma frustração que não vem de hoje. Uma solução é recorrer ao Flash. Vamos mostrar algumas soluções e técnicas que permitem usar outras fontes em seu site, garantindo que seus visitantes vão viualiza-las. Todas gratuitas <img src='http://www.webisland.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>sIRF</h3>
<p>Bastante conhecida, desenvolvida por <a title="Mike's Website" href="http://www.mikeindustries.com/" target="_blank">Mike Davidson</a> e <a title="Mark's Website" href="http://www.novemberborn.net/" target="_blank">Mark Wubben</a>, <a title="sIRF Post" href="http://www.mikeindustries.com/blog/sifr/" target="_blank">sIRF (Scalable Inman Flash Replacement)</a> usa javascript para indentificar se o usuário tem o flash plugin instalado (se não tiver, exibe uma fonte comum) e flash para substituir o texto pela fonte personalizada.</p>
<p>Além de ser bastante compatível (IE5+, Safari, Firefox, Opera7+) não há prejuízo na acessibilidade e não prejudica as técnicas de SEO já que o código não é alterado. Veja um <a title="Exemplo de sIRF" href="http://www.mikeindustries.com/blog/files/sifr/2.0/" target="_blank">exemplo</a>.</p>
<h4>Como funciona</h4>
<p>A primeira coisa, é baixar a última versão no <a title="Download do sIFR" href="http://wiki.novemberborn.net/sifr3/Nightlies" target="_blank">site da documentação</a>. Eu usei a versão 3 r436, a versão 2 não abre no Flash CS4 e você vai precisar pelo menos da versão 8 Pro (ou superior).</p>
<p><strong>Flash:</strong> Abra o arquivo <em>sifr.fla</em> (pasta flash) e edite o MovieClip principal (identificado como holder),  remova o texto padrão e configure os atributos da fonte (bold, italic e regular, sublinhado não). Selecione a fonte e os caracteres extras em Charactere Embidding (acentos, pontuação).  Exporte o filme <em>pra swf </em>configurando os seguintes parâmetros:</p>
<ul>
<li>Flash 8 (AS2),</li>
<li>Load Order  para BottomUp</li>
<li>Protect the movie from import</li>
<li>Compress Movie</li>
</ul>
<p><strong>HTML:</strong> Faça as chamadas para o CSS e Javascript do sIFR</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;link rel=&quot;stylesheet&quot; href=&quot;sIFR/sifr.css&quot; type=&quot;text/css&quot;&gt;
&lt;script src=&quot;sIFR/sifr.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;sIFR/sifr-config.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre></div></div>

<p>Abra na pasta js, o arquivo sifr-config.js e:</p>
<ul>
<li>Configure o caminho do swf exportado</li>
<li>Ative o objeto</li>
<li>Diga quem você quer substituir (e por quem)</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> fonteVirtual <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #3366CC;">'../sifr3-r436/flash/sifr.swf'</span><span style="color: #339933;">,</span> transparent<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
sIFR.<span style="color: #660066;">activate</span><span style="color: #009900;">&#40;</span>fonteVirtual<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
sIFR.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>fonteVirtual<span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
selector<span style="color: #339933;">:</span> <span style="color: #3366CC;">'h1'</span><span style="color: #339933;">,</span>
css<span style="color: #339933;">:</span> <span style="color: #3366CC;">'.sIFR-root { background-color: #F9F9F9; color: #FF0000; }'</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Claro que você tem muitas outras opções para configurar, <a title="Javascript sIFR Documentação" href="http://wiki.novemberborn.net/sifr3/JavaScript+Configuration" target="_blank">veja aqui</a>.</p>
<p><strong>CSS:</strong> Agora basta configurar a classe referente ao sIFR</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sIFR-active</span> h1 <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">visibility</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> Verdana<span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1em</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">18px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Apartir de agora atodo elemento <strong>h1</strong> será substituída pela fonte configurada.</p>
<p>Realizando alguns testes, o custo disso será o seguinte:</p>
<ul>
<li>sifr.css (1kb)</li>
<li>sifr.js (28kb)</li>
<li>sifr-config.js (1kb)</li>
<li>sifr.swf (8kb)</li>
</ul>
<p>38kb no total e alguns arquivos podem variar.</p>
<p><a title="Exemplo do sIFR" href="http://www.webisland.com.br/blog/exemplos/EmbedType/sIFR/">Veja o sIFR funcionando</a></p>
<h3>FontBurner</h3>
<p><a title="Fontburner Website" href="http://www.fontburner.com" target="_blank">Fontburner</a> é open-source e utiliza sIFR, mas sua implementação é bem mais simples. Dispensa o Flash, configuração de javascript e css, conversão de fonte. Não prejudica o site nas ferramentas de busca.</p>
<h4>Como funciona</h4>
<p>Praticamente todos os recursos ficam no servidor do FontBurner e o que você precisa fazer é apenas <a title="Fontes disponíveis" href="http://www.fontburner.com/search-for-a-font/" target="_blank">escolher a sua fonte no repositório</a> do site e colar o código gerado em sua página.</p>
<p>Por padrão, elementos <em>H[1...6] </em> já aparecem com a fonte substituída. Mas outros elementos também podem ser alterados atribuindo à classe css do ememento o nome da fonte. Ex,:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;span class=&quot;babelsans_bold&quot; style=&quot;font-size:11px;&quot;&gt;Forcei a barra com esse span que também usa a fonte BabelSans&lt;/span&gt;</pre></div></div>

<p>Com FontBurner  você deve escolher entra as mais de 1000 fontes disponíveis no site que fornece também um <strong>plugin para wordpress</strong> e o próprio arquivo <strong>.swf</strong> pra usar com o sIFR se necessário.</p>
<p><a title="Exemplo" href="http://www.webisland.com.br/blog/exemplos/EmbedType/FontBurner/" target="_blank">Veja funcionando</a></p>
<h3>TypefaceJS</h3>
<p><a title="TypefaceJS Website" href="http://typeface.neocracy.org" target="_blank">TypefaceJS</a> é uma biblioteca javascript open-source, cross-browser (Firefox 1.5+, Safari 2+ e Internet Explorer 6+) . Utiliza o recursos do próprio navegador para desenho de vetor (<a title="Canvas Referencia" href="http://www.whatwg.org/specs/web-apps/current-work/#the-canvas-element" target="_blank">&lt;canvas&gt;</a> e <a title="SVG no W3C" href="http://www.w3.org/TR/SVG11/" target="_blank">SVG</a> para Firefox, Safari e Opera e <a title="VML no W3C" href="http://www.w3.org/TR/NOTE-VML" target="_blank">VML</a> para IE). Aceita seleção de texto e copiar-colar.</p>
<h4>Como funciona</h4>
<p><span style="font-weight: normal; font-size: 13px; ">Converta a fonte escolhida (OpenType ou TrueType) para o formato <em>typeface javascript</em>. Nele está as coordenadas do desenho da fonte. Use o próprio <a title="Typeface conversor" href="http://typeface.neocracy.org/fonts.html" target="_blank">conversor do site</a>.</span></p>
<p style="text-align: center;"><span style="font-weight: normal; font-size: 13px; "><a href="http://www.webisland.com.br/blog/wp-content/uploads/2009/11/typeface-converter-tool.gif"><img class="size-full wp-image-27 aligncenter" title="Conversor de fonte do TypefaceJS" src="http://www.webisland.com.br/blog/wp-content/uploads/2009/11/typeface-converter-tool.gif" alt="Conversor de fonte do TypefaceJS" width="362" height="117" /></a></span></p>
<p>Em seguida, importe  a <a title="Download da biblioteca TypefaceJS" href="http://typeface.neocracy.org/download.html" target="_blank">biblioteca do typeface</a> e o script da fonte convertida, nesta sequência. Se houver uma folha de estilo, deve vir antes dos scripts.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;stylesheet&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/css&quot;</span> href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;css/estilo.css&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;js/typeface-0.13.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;js/gentilis_bold.typeface.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Aplique a classe <em>typeface-js</em> nos elementos que deseja aplicar a fonte. Recomendo que procure aplicar apenas em título já que existe uma tempo de processamento.</p>
<h4>Limitações</h4>
<p>TypefaceJS funcionou muito bem. A sua biblioteca nem é tão pesada (25kb na versão 0.13). Os scripts convertidos variam de acordo com a fonte escolhida. O problema encontrado foi durante a conversão das fontes. O conversor online, respeita os direitos de distribuição das fontes identificando e bloqueando se preciso. Se a fonte escolhida não se enquadrar, esqueça. Talvez haja uma solução <a title="Não custa tentar" href="http://www.elctech.com/tutorials/converting-otf-opentype-to-ttf-truetype-for-use-typeface-js" target="_blank">aqui</a>.</p>
<p><a title="Typeface funcionando!" href="http://www.webisland.com.br/blog/exemplos/EmbedType/TypefaceJS/" target="_blank">Veja o Typeface funcionando</a></p>
<h3>Cufón</h3>
<p>Consiste em duas partes, o <a title="Gerador de fontes Cufón" href="http://cufon.shoqolate.com/generate/" target="_blank">gerador</a> e sua renderização por javascript. <a title="Cufon's Website" href="http://wiki.github.com/sorccu/cufon" target="_blank">Cufón </a>é uma mistura de SVG, VML, JSON. Dispõe de cache pra acelerar a renderização da fonte. O arquivo da fonte convertido pra javscript é bem pequeno, de um teste que fiz deu 15kb e sua biblioteca principal 18kb (versão comprimida). Sua <a title="API Cufón" href="http://wiki.github.com/sorccu/cufon/api" target="_blank">API </a>bem documentada e cheio de exemplos</p>
<h4>Como funciona</h4>
<p>Use o<a title="Generator" href="http://cufon.shoqolate.com/generate/" target="_blank"> generator do Cufón</a> pra adquirir a versão SVG/JS da fonte. Faça o download da <a title="Biblioteca Comprimida do Cufón" href="http://cufon.shoqolate.com/js/cufon-yui.js" target="_blank">última versão da biblioteca</a> e coloque os dois (ou mais, se houver outra fonte) script na sua página e use o comando Cufon.replace para apontar o elemento que irá receber a fonte. O parâmetro também pode ser uma querie de bibliotecas JS como Prototype, JQuery.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script src=&quot;cufon-yui.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;wanta_500.font.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  Cufon.replace('h1');
&lt;/script&gt;</pre></div></div>

<p><a title="Cufón Exemplo" href="http://www.webisland.com.br/blog/exemplos/EmbedType/cufon/" target="_blank">Veja o Cufón funcionando</a></p>
<h3>Facelift</h3>
<p>&#8220;Uma alternativa ao  sIFR&#8221;. Esse é o slogan do <a title="Facelift's Website" href="http://facelift.mawhorter.net/" target="_blank">FLIR (Facelift Image Replacement)</a>. Funciona com PHP com a biblioteca GD (para criação de imagens) gerando imagens dinamicamente.</p>
<h4>Como funciona</h4>
<p>A primeira coisa a fazer (depois de efetuar o download, claro!) é configurar o arquivo <em>config-flir.php</em>.  Diretórios, fontes, cache entre outros parâmetros. Elementos h1&#8230;h5 já são aplicados automaticamente pela função js FLIR.auto().  Importando o javascript (33kb) e definindo os elementos que serão substituídos, a nova fonte já será aplicada. Também é possível usar queries para elementos mais específicos</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script language=&quot;javascript&quot; src=&quot;/path-to/facelift/flir.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  FLIR.init( { path: '/path-to/facelift/' } );
  // automatico para h1 e h3.special
  FLIR.auto( [ 'h1',  'h3.special'] );
  // O emelento H3 terá uma fonte 'tribal'
  FLIR.replace( 'h3' , new FLIRStyle({ cFont:'tribal' }) );
&lt;/script&gt;</pre></div></div>

<p>A <a title="Documentação" href="http://docs.facelift.mawhorter.net/" target="_blank">documentaçao</a> deixa a desejar, mas os parâmetros do <a title="config-flir.php Settings" href="http://docs.facelift.mawhorter.net/configuration:settings" target="_blank">config-flir.php</a> e <a title="Exemplos, veja os fontes" href="http://facelift.mawhorter.net/detailed-examples/" target="_blank">pelos exemplos</a> vai tranquilo.</p>
<p>Como grande parte do processamento fica por conta do PHP, há uma certa demora que pode causar um comportamento estranho mas o cache ta pra tentar resolver. O interessante é que há mais flexibilidade nas conversões de fontes, além de ser mais fácil substituí-las.</p>
<p><a title="Exemplo de Facelift" href="http://www.webisland.com.br/blog/exemplos/EmbedType/facelift2/" target="_blank">Veja FLIR funcionando</a></p>
<h3>Mais</h3>
<ul>
<li><a title="Noupe" href="http://www.noupe.com/fonts/web-typography-font-embedding-services.html" target="_blank">Web Typography: Font Embedding Services</a></li>
<li><a title="Smashing Magazine" href="http://www.smashingmagazine.com/2009/10/22/rich-typography-on-the-web-techniques-and-tools/" target="_blank">Rich Typography On The Web: Techniques and Tools</a></li>
<li><a title="Arquivos" href="http://www.webisland.com.br/blog/exemplos/EmbedType.zip">Arquivos de exemplo</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webisland.com.br/blog/alternativas-para-aposentar-arial-font-embeddin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Várias versões de Symfony na mesma máquina (Windows)</title>
		<link>http://www.webisland.com.br/blog/varias-versoes-de-symfony-na-mesma-maquina/</link>
		<comments>http://www.webisland.com.br/blog/varias-versoes-de-symfony-na-mesma-maquina/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 22:43:27 +0000</pubDate>
		<dc:creator>Thiago Bussiki</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.webisland.com.br/?p=4</guid>
		<description><![CDATA[Todos que acompanham essa fantástica framework ja notaram a velocidade que as mudanças acontecem. O problema é que nem sempre podemos mudar nossas aplicações de versão. Neste tutorial vamos aprender a instalar mais de uma versão.]]></description>
			<content:encoded><![CDATA[<p>Olá, para inaugurar as postagens vamos começar com <a title="Symfony Oficial Website" href="http://www.symfony-project.org" target="_blank">Symfony</a>. Todos que acompanham essa fantástica framework ja notaram a velocidade que as mudanças acontecem. O problema é que nem sempre podemos mudar nossas aplicações de versão. O <em>compatMode </em>ajuda a segurar as pontas, mas nada melhor do que utulizar todos os recursos da versão.</p>
<p>A maneira que consegui fazer isso foi instalar várias versões numa mesma máquina. Usei:</p>
<ul>
<li>Windows 7 (beta);</li>
<li>PHP 5.2 (instalado em C:\PHP5);</li>
<li>Apache 2.2</li>
</ul>
<p>Se você quer resolver esse problema no Linux, <a href="http://symfonynerds.com/blog/?p=123" target="_blank">siga esse tutorial</a></p>
<h3>Instalando Symfony 1.0</h3>
<p>Seguindo o procedimento de<a href="http://www.symfony-project.org/installation/1_0" target="_blank"> instalação pelo PEAR</a> pelo comando <em>pear install</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pear <span style="color: #c20cb9; font-weight: bold;">install</span> symfony<span style="color: #000000; font-weight: bold;">/</span>symfony-1.0.21</pre></div></div>

<div id="attachment_7" class="wp-caption alignnone" style="width: 395px"><a href="http://www.webisland.com.br/blog/wp-content/uploads/2009/10/screen-symfony-10-instalado.gif"><img class="size-full wp-image-7  " title="screen-symfony-10-instalado" src="http://www.webisland.com.br/blog/wp-content/uploads/2009/10/screen-symfony-10-instalado.gif" alt="Instalação do Symfony 1.0 - OK" width="385" height="42" /></a><p class="wp-caption-text">Instalação do Symfony 1.0 - OK</p></div>
<p>Pronto, agora vamos renomear as pastas e redirecionar os apontamentos para receber a outra versão.</p>
<p>Na instalação o Symfony criou duas pastas no diretório de instalação do PHP, uma em<strong> %PHP_DIR%\data\symfony</strong> (esqueletos, forma dos módulos, etc) e <strong>%PHP_DIR%\PEAR\symfony</strong> (as classes da framework). Renomeie essas pastas de <strong>symfony </strong>para <strong>symfony10 </strong>(de symfon 1.0). Renomeie também os dois arquivos criados no diretório de instalação do PHP, <strong>symfony </strong>e <strong>symfony.bat</strong> para <strong>symfony10</strong> e <strong>symfony10.bat</strong>.</p>
<p>Abra o arquivo <em>symfony10</em> e altere as seguintes linhas</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">//</span> PEAR
<span style="color: #007800;">$sf_symfony_lib_dir</span>  = <span style="color: #ff0000;">'C:\PHP5\pear/symfony'</span>;
<span style="color: #007800;">$sf_symfony_data_dir</span> = <span style="color: #ff0000;">'C:\PHP5\data/symfony'</span>;</pre></div></div>

<p>para:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">//</span> PEAR
<span style="color: #007800;">$sf_symfony_lib_dir</span> = <span style="color: #ff0000;">'C:\PHP5\pear/symfony10'</span>;
<span style="color: #007800;">$sf_symfony_data_dir</span> = <span style="color: #ff0000;">'C:\PHP5\data/symfony10'</span>;</pre></div></div>

<p>Em seguida, abra o arquivo <em>symfony10.bat</em> e modifique o seguinte trecho:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">IF</span> EXIST <span style="color: #0000ff;">&quot;.\symfony&quot;</span> <span style="color: #009900;">&#40;</span>
<span style="color: #339933;">%</span>PHP_COMMAND<span style="color: #339933;">%</span> <span style="color: #339933;">-</span>d html_errors<span style="color: #339933;">=</span>off <span style="color: #339933;">-</span>d open_basedir<span style="color: #339933;">=</span> <span style="color: #339933;">-</span>q <span style="color: #0000ff;">&quot;.\symfony&quot;</span> <span style="color: #339933;">%</span><span style="color:#800080;">1</span> <span style="color: #339933;">%</span><span style="color:#800080;">2</span> <span style="color: #339933;">%</span><span style="color:#800080;">3</span> <span style="color: #339933;">%</span><span style="color:#800080;">4</span> <span style="color: #339933;">%</span><span style="color:#800080;">5</span> <span style="color: #339933;">%</span><span style="color:#800080;">6</span> <span style="color: #339933;">%</span><span style="color:#800080;">7</span> <span style="color: #339933;">%</span><span style="color:#800080;">8</span> <span style="color: #339933;">%</span><span style="color:#800080;">9</span>
<span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ELSE</span> <span style="color: #009900;">&#40;</span>
<span style="color: #339933;">%</span>PHP_COMMAND<span style="color: #339933;">%</span> <span style="color: #339933;">-</span>d html_errors<span style="color: #339933;">=</span>off <span style="color: #339933;">-</span>d open_basedir<span style="color: #339933;">=</span> <span style="color: #339933;">-</span>q <span style="color: #0000ff;">&quot;%SCRIPT_DIR%\symfony&quot;</span> <span style="color: #339933;">%</span><span style="color:#800080;">1</span> <span style="color: #339933;">%</span><span style="color:#800080;">2</span> <span style="color: #339933;">%</span><span style="color:#800080;">3</span> <span style="color: #339933;">%</span><span style="color:#800080;">4</span> <span style="color: #339933;">%</span><span style="color:#800080;">5</span> <span style="color: #339933;">%</span><span style="color:#800080;">6</span> <span style="color: #339933;">%</span><span style="color:#800080;">7</span> <span style="color: #339933;">%</span><span style="color:#800080;">8</span> <span style="color: #339933;">%</span><span style="color:#800080;">9</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>para:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">IF</span> EXIST <span style="color: #0000ff;">&quot;.\symfony10&quot;</span> <span style="color: #009900;">&#40;</span>
<span style="color: #339933;">%</span>PHP_COMMAND<span style="color: #339933;">%</span> <span style="color: #339933;">-</span>d html_errors<span style="color: #339933;">=</span>off <span style="color: #339933;">-</span>d open_basedir<span style="color: #339933;">=</span> <span style="color: #339933;">-</span>q <span style="color: #0000ff;">&quot;.\symfony10&quot;</span> <span style="color: #339933;">%</span><span style="color:#800080;">1</span> <span style="color: #339933;">%</span><span style="color:#800080;">2</span> <span style="color: #339933;">%</span><span style="color:#800080;">3</span> <span style="color: #339933;">%</span><span style="color:#800080;">4</span> <span style="color: #339933;">%</span><span style="color:#800080;">5</span> <span style="color: #339933;">%</span><span style="color:#800080;">6</span> <span style="color: #339933;">%</span><span style="color:#800080;">7</span> <span style="color: #339933;">%</span><span style="color:#800080;">8</span> <span style="color: #339933;">%</span><span style="color:#800080;">9</span>
<span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ELSE</span> <span style="color: #009900;">&#40;</span>
<span style="color: #339933;">%</span>PHP_COMMAND<span style="color: #339933;">%</span> <span style="color: #339933;">-</span>d html_errors<span style="color: #339933;">=</span>off <span style="color: #339933;">-</span>d open_basedir<span style="color: #339933;">=</span> <span style="color: #339933;">-</span>q <span style="color: #0000ff;">&quot;%SCRIPT_DIR%\symfony10&quot;</span> <span style="color: #339933;">%</span><span style="color:#800080;">1</span> <span style="color: #339933;">%</span><span style="color:#800080;">2</span> <span style="color: #339933;">%</span><span style="color:#800080;">3</span> <span style="color: #339933;">%</span><span style="color:#800080;">4</span> <span style="color: #339933;">%</span><span style="color:#800080;">5</span> <span style="color: #339933;">%</span><span style="color:#800080;">6</span> <span style="color: #339933;">%</span><span style="color:#800080;">7</span> <span style="color: #339933;">%</span><span style="color:#800080;">8</span> <span style="color: #339933;">%</span><span style="color:#800080;">9</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Obs: Se o projeto foi criado anteriormente, altere as variáveis do arquivo <em>config.php</em>, dentro do projeto:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sf_symfony_lib_dir</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">'C:\PHP5\pear\symfony10'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sf_symfony_data_dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'C:\PHP5\data\symfony10'</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Instalando o Symfony 1.2</h3>
<p>Agora vamos instalar a outra versão do symfony, através do pear. Escolhi a 1.2, mas poderia ser qualquer outra.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ pear <span style="color: #c20cb9; font-weight: bold;">install</span> symfony<span style="color: #000000; font-weight: bold;">/</span>symfony-1.2.9</pre></div></div>

<p>Perceba que o symfony voltou a criar as mesmas pastas (symfony) nos diretórios <em>PEAR </em>e <em>data </em>no diretório do PHP, além dos arquivos <em>symfony </em>e <em>symfony.bat</em>. Vamos repetir o procedimento de renomear as pastas e os arquivos, de <em>symfony </em>para <em>symfony12</em>. Faça o mesmo procedimento dentro dos arquivos <em>symfony</em> e <em>symfony.bat</em>.</p>
<h3>Criando as Aplicações</h3>
<p>A partir de agora, os comandos do console são de acordo com a versão desejada. Por exemplo, para criar um projeto que antes era <strong>symfony init-project</strong>, você vai usar <strong>symfony10 init-project</strong> (para usar a versão 1.0 da framework) ou<strong> symfony12 generate:project</strong> (para versão 1.2).</p>
<p><a href="http://www.webisland.com.br/blog/wp-content/uploads/2009/10/criacao-app-symfony12.gif"></a><a href="http://www.webisland.com.br/blog/wp-content/uploads/2009/11/criacao-app-symfony12.gif"><img class="alignnone size-thumbnail wp-image-75" title="criacao-app-symfony12" src="http://www.webisland.com.br/blog/wp-content/uploads/2009/11/criacao-app-symfony12-180x32.gif" alt="criacao-app-symfony12" width="180" height="32" /></a></p>
<p>Como exemplo, crie um projeto para cada versão no diretório C:\Apps\PHPApps</p>
<h3>Configurando o Host</h3>
<p>O Symfony já está preparado, agora vamos configurar o arquivo de host e o Apache.</p>
<p>Abra o arquivo <strong><em>hosts</em></strong> em <em>C:\Windows\System32\drivers\etc</em> e adicione um hostname para cada aplicação. Ex:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">127.0.0.1    app10
127.0.0.1    app12</pre></div></div>

<p>Ambos apontando para a própria máquina.</p>
<p>Abra o arquivo de configuração do host do Apache. Geralmente está em C:\Arquivos de Programas\Apache Software Foundation\Apache2.2\extras\httpd-vhosts.conf. No Windows 7 o diretório padrão é<em> Program Files (x86)</em> e não Arquivos de Programas.</p>
<p>Configure os hosts, um pra cada aplicação. Ficaria assim:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">NameVirtualHost</span> *:<span style="color: #ff0000;">80</span>
<span style="color: #adadad; font-style: italic;"># app10 - Host para aplicação symfony 1.0</span>
&amp;lt;VirtualHost *:<span style="color: #ff0000;">80</span>&amp;gt;
  <span style="color: #00007f;">DocumentRoot</span> <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\A</span>pps<span style="color: #000099; font-weight: bold;">\P</span>HPApps<span style="color: #000099; font-weight: bold;">\P</span>roj10<span style="color: #000099; font-weight: bold;">\w</span>eb&quot;</span>
  <span style="color: #00007f;">ServerName</span> app10
  <span style="color: #00007f;">DirectoryIndex</span> index.php
  <span style="color: #00007f;">Alias</span> /sf C:\PHP5\data\symfony10\web\sf
  &amp;lt;Directory <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\A</span>pps<span style="color: #000099; font-weight: bold;">\P</span>HPApps<span style="color: #000099; font-weight: bold;">\P</span>roj10<span style="color: #000099; font-weight: bold;">\w</span>eb&quot;</span>&amp;gt;
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
  &amp;lt;/Directory&amp;gt;
  &amp;lt;Directory <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\P</span>HP5<span style="color: #000099; font-weight: bold;">\d</span>ata<span style="color: #000099; font-weight: bold;">\s</span>ymfony10<span style="color: #000099; font-weight: bold;">\w</span>eb<span style="color: #000099; font-weight: bold;">\s</span>f&quot;</span>&amp;gt;
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
    &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&nbsp;
<span style="color: #adadad; font-style: italic;"># app12 - Aplicação para Symfony 1.2</span>
&amp;lt;VirtualHost *:<span style="color: #ff0000;">80</span>&amp;gt;
  <span style="color: #00007f;">DocumentRoot</span> <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\A</span>pps<span style="color: #000099; font-weight: bold;">\P</span>HPApps<span style="color: #000099; font-weight: bold;">\P</span>roj12<span style="color: #000099; font-weight: bold;">\w</span>eb&quot;</span>
  <span style="color: #00007f;">ServerName</span> app12
  <span style="color: #00007f;">DirectoryIndex</span> index.php
  <span style="color: #00007f;">Alias</span> /sf C:\PHP5\data\symfony12\web\sf
  &amp;lt;Directory <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\A</span>pps<span style="color: #000099; font-weight: bold;">\P</span>HPApps<span style="color: #000099; font-weight: bold;">\P</span>roj12<span style="color: #000099; font-weight: bold;">\w</span>eb&quot;</span>&amp;gt;
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
  &amp;lt;/Directory&amp;gt;
  &amp;lt;Directory <span style="color: #7f007f;">&quot;C:<span style="color: #000099; font-weight: bold;">\P</span>HP5<span style="color: #000099; font-weight: bold;">\d</span>ata<span style="color: #000099; font-weight: bold;">\s</span>ymfony12<span style="color: #000099; font-weight: bold;">\w</span>eb<span style="color: #000099; font-weight: bold;">\s</span>f&quot;</span>&amp;gt;
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
  &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;</pre></div></div>

<p>Depis de criar o projeto e a aplicação, basta acessar <strong>http://app10</strong> ou <strong>http://app12</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webisland.com.br/blog/varias-versoes-de-symfony-na-mesma-maquina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Livro de Flex + Flash Media Server</title>
		<link>http://www.webisland.com.br/blog/livro-de-flex-flash-media-server/</link>
		<comments>http://www.webisland.com.br/blog/livro-de-flex-flash-media-server/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:25:28 +0000</pubDate>
		<dc:creator>Thiago Bussiki</dc:creator>
				<category><![CDATA[Livros]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.webisland.com.br/?p=12</guid>
		<description><![CDATA[Carlos Eduardo lança sua primeira publicação abrodando Flex e Flash Média Server, assunto de interesse para quem trabalha com RIA e Vídeos para Web]]></description>
			<content:encoded><![CDATA[<div id="attachment_13" class="wp-caption alignleft" style="width: 111px"><a href="http://www.webisland.com.br/blog/wp-content/uploads/2009/10/capa-livro-flex-fms.jpg"><img class="size-full wp-image-13 " title="capa-livro-flex-fms" src="http://www.webisland.com.br/blog/wp-content/uploads/2009/10/capa-livro-flex-fms.jpg" alt="Capa do Livro - Flex 3+FMS" width="101" height="147" /></a><p class="wp-caption-text">Capa do Livro</p></div>
<p>Uma nova publicação, nacional está tratando de um assunto como nenhum outro livro fez.<a title="Editora Brasport" href="http://www.brasport.com.br/index.php?Escolha=8&amp;Livro=L00336" target="_blank"> Flex 3 + Flash Media Server 3.5</a> acabou de sair do forno escrito por ninguém menos que Carlos Eduardo, da <a href="http://www.egenial.com.br" target="_blank">e-Genial</a> e um dos pioneiros em Flex+RoR no Brasil e criador da ferramenta de EaD <a title="Treina Tom" href="http://www.treinatom.com.br" target="_blank">Treina Tom</a>.<span id="more-12"></span></p>
<p>O livro é recomendado para aqueles que se aventuram a trabalhar com exibição de vídeos para web utilizando Flex. Distribuido pela Brasport, já encomendei o meu. Veja o índice do livro:</p>
<ul>
<li>Iniciando com Flex, Adobe AIR e Flash Media Server 3</li>
<li>Formatos e Protocolos de Comunicação</li>
<li>Publicando seu Microfone e Vídeo</li>
<li>Persistindo Objetos Remotos e não Remotos</li>
<li>Streaming de Vídeo e Áudio</li>
<li>Comunicações Um para Um e Um para Muitos</li>
<li>Gravações</li>
<li>Customizações</li>
<li>Segurança</li>
<li>Arquivos server-side</li>
<li>Administração e Deploy</li>
<li>Finalizando Sites, Referências e Documentações</li>
</ul>
<p>Mais informações e pedidos: <a title="Editora Brasport" href="http://www.brasport.com.br/index.php?Escolha=8&amp;Livro=L00336">Editora Brasport</a></p>
<p>Blog oficial do livro e diversos posts sobre o assunto: <a title="FMS Guru" href="http://fmsguru.com.br/" target="_blank">FMSGuru</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webisland.com.br/blog/livro-de-flex-flash-media-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>


