<?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>A fronteira final &#187; W3C</title>
	<atom:link href="http://afronteirafinal.com/tag/w3c/feed/" rel="self" type="application/rss+xml" />
	<link>http://afronteirafinal.com</link>
	<description>Audaciosamente indo onde nenhum dev jamais esteve</description>
	<lastBuildDate>Thu, 15 Dec 2011 15:52:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Saiba mais sobre DOM e ECMAScript</title>
		<link>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/</link>
		<comments>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:41:46 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JScript]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=290</guid>
		<description><![CDATA[Por muito tempo eu fingia saber exatamente o que era DOM, ECMAScript, JScript, DHTML, etc significava. Mas num final de semana desses eu peguei para ler sobre o que eles significam e como eles estão relacionados. Esta é a forma como a especificação DOM define um &#8220;DOM&#8221;: O Document Object Model (DOM) é um Application [...]]]></description>
			<content:encoded><![CDATA[<p>Por muito tempo eu fingia saber exatamente o que era DOM, ECMAScript, JScript, DHTML, etc significava. Mas num final de semana desses eu peguei para ler sobre o que eles significam e como eles estão relacionados.</p>
<p>Esta é a forma como a especificação DOM define um &#8220;DOM&#8221;:</p>
<blockquote><p><strong><em>O Document Object Model (DOM) é um Application Programming Interface (API) para HTML válido e documentos XML bem formatados. Ele define a estrutura lógica dos documentos e o modo como um documento é acessado e manipulado.</em></strong></p></blockquote>
<p><span id="more-290"></span>Em outras palavras, o DOM é uma forma padrão para permitir que as linguagens de programação interajam com documentos HTML / XML. O W3C fornece, o que é chamado de linguagem de vinculações, para o ECMAScript. Isto significa que as funcionalidades definidos na especificação DOM foram implementadas nessa linguagem.</p>
<p>ECMAScript é uma &#8220;uniformização&#8221; da língua (script) dos &#8220;homens das cavernas&#8221; &#8211; Netscape JavaScript e Microsoft JScript para que todos os browsers possam compreender instruções escritas usando o ECMAScript.</p>
<p>Agora, existem três grandes &#8220;dialetos&#8221; do ECMAScript: JavaScript (Firefox / Chrome / Safari), JScript (IE), e ActionScript (Adobe Flash / Flex). Estes são chamados dialetos como suporte a código escrito antes da normalização e fornecem alguns recursos não disponíveis no ECMAScript ou em outros dialetos.</p>
<p>Os navegadores fornecem uma implementação das interfaces do DOM que permite ECMAScript (ou dialetos suportados) interagirem com o DOM de um documento XML/HTML. Assim, a maioria dos browsers decentes, lançado conforme os padrões, dizem qual ECMAScript é suportado para cada versão do seu navegador.</p>
<p>O DOM de uma página HTML tem uma &#8220;árvore-como estrutura&#8221; quando visualizadas. É importante notar que o DOM não representa o conteúdo do HTML, mas representa apenas objetos através dos quais o conteúdo pode ser acessado. Esses objetos são modelados após a marcação que existe na página HTML. As relações, funções, comportamentos e atributos desses objetos são identificados pelo DOM.</p>
<p>Bom, é isso! Você normalmente não precisa de saber sobre interfaces DOM principalmente se você trabalhar com uma biblioteca JavaScript. Mas se você estiver interessado, Quirksmode (<a href="http://www.quirksmode.org" target="_blank">http://www.quirksmode.org</a>) tem uma excelente introdução ao DOM.</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SVG vs CANVAS</title>
		<link>http://afronteirafinal.com/svg-vs-canvas/</link>
		<comments>http://afronteirafinal.com/svg-vs-canvas/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 12:42:03 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[DOM SVG]]></category>
		<category><![CDATA[explorecanvas]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[SVG Web]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=211</guid>
		<description><![CDATA[Como você deve ter notado em meu post anterior sobre HTML5 (http://afronteirafinal.com/prepare-se-para-o-html-5), eu abordei sobre SVG e Canvas e nas últimas semanas os debates estão se aquecendo sobre os méritos de cada um, e muitos estão prevendo um &#8220;death match&#8221;. No entanto, minha pesquisa me convence de que cada um tem suas próprias finalidades, mas [...]]]></description>
			<content:encoded><![CDATA[<p>Como você deve ter notado em meu post anterior sobre HTML5 (<a href="http://afronteirafinal.com/prepare-se-para-o-html-5" target="_blank">http://afronteirafinal.com/prepare-se-para-o-html-5</a>), eu abordei sobre SVG e Canvas e nas últimas semanas os debates estão se aquecendo sobre os méritos de cada um, e muitos estão prevendo um &#8220;death match&#8221;. No entanto, minha pesquisa me convence de que cada um tem suas próprias finalidades, mas definitivamente chegou a hora de usá-los.</p>
<h2>O QUE É SVG?</h2>
<p>SVG é uma linguagem para descrever gráficos bidimensionais e aplicações gráficas em XML. Alguns exemplos de SVG são: o logo da Wikipedia (<a href="http://upload.wikimedia.org/wikipedia/commons/7/77/Wikipedia_svg_logo.svg">http://upload.wikimedia.org/wikipedia/commons/7/77/Wikipedia_svg_logo.svg</a>) e o &#8220;Hello World&#8221; do SVG chamado de &#8220;Tiger&#8221; (<a href="http://www.amplesdk.com/examples/svg/tiger">http://www.amplesdk.com/examples/svg/tiger</a>). Veja o fonte desses dois arquivos SVG para ver como SVG parece.<span id="more-211"></span></p>
<p><strong>Demo SVG:</strong></p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="SVG" /></p>
<pre>&lt;svg xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 200 100"
  width="200px" height="100px"&gt;
  &lt;circle cx="50" cy="50" r="30"
  style="stroke:none; fill:#ff0000;"/&gt;
  &lt;g transform="translate(100, 20) scale(1.65)"&gt;
  &lt;polygon points="36 25, 25 36, 11 36, 0 25,
  0 11, 11 0, 25 0, 36 11"
  style="stroke:none; fill:#0000ff;" /&gt;
  &lt;/g&gt;
  &lt;rect x="60" y="20" height="60" width="60"
  style="stroke:none; fill:#00ff00;
  fill-opacity: 0.5;" /&gt;
&lt;/svg&gt;</pre>
<h2>O QUE É CANVAS?</h2>
<p>A especificação do HTML 5 define da seguinte forma: &#8220;Elemento de tela que representa um processamento gráficos &#8220;bitmap&#8221; para gerar imagens, gráficos, jogos através de JavaScript&#8221;.</p>
<p><em>Vladimir Vukićević</em> da Mozilla, em 2006, deu uma boa explicação sobre as diferenças entre o SVG e Canvas:</p>
<p>- SVG é baseado em XML. Isto significa que, cada elemento está disponível no DOM SVG (útil quando você deseja anexar os manipuladores de eventos javascript para um elemento). Canvas não é baseado em XML.</p>
<p>- Canvas é processado pixel por pixel. SVG é um monte de vetores e precisa ser manipulado como um grupo de formas. Uma analogia no mundo Photoshop seria, criar um retângulo usando a &#8220;ferramenta forma&#8221; contra usar o &#8220;PaintBrush&#8221;.</p>
<p><strong>Demo Canvas:</strong></p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="Canvas" /></p>
<p>E aqui está o JavaScript que o criou o desenho:</p>
<pre>function drawSimpleCanvas() {
 var canvas =
 document.getElementById("simpleCanvas");
  if (canvas.getContext) {
  var ctx = canvas.getContext("2d");
  ctx. (); // the circle
  ctx.fillStyle = "#ff0000";
  ctx.arc(50, 50, 30, 0, 2*Math.PI, true);
  ctx.closePath();
  ctx.fill();
  ctx.save();
  // move and resize the octagon
  ctx.translate(100, 20);
  ctx.scale(1.65, 1.65);
  ctx.fillStyle = "#0000ff";
  ctx.beginPath();
  ctx.moveTo(36, 25); ctx.lineTo(25, 36);
  ctx.lineTo(11, 36); ctx.lineTo(0, 25);
  ctx.lineTo(0, 11); ctx.lineTo(11, 0);
  ctx.lineTo(25, 0); ctx.lineTo(36, 11);
  ctx.closePath();
  ctx.fill();
  // restore graphics as they
  // were before move and resize
  ctx.restore();
  ctx.fillStyle = "#00ff00";
  ctx.globalAlpha = 0.5;
  ctx.beginPath();
  ctx.rect(60, 20, 60, 60);
  ctx.closePath();
  ctx.fill();
 }
}</pre>
<h2>QUEM VAI GANHAR?</h2>
<p>Mesmo que sejam completamente diferentes na sua natureza e finalidade, há várias coisas que pode ser feito usando &#8220;Canvas&#8221; e &#8220;SVG&#8221;. A recente popularização do elemento &#8220;Canvas&#8221; parecem para  algumas pessoas a morte do SVG. Mas pelo que notei está longe da verdade.</p>
<p>O &#8220;Canvas&#8221; é tão bom como uma imagem &#8211; mas ele não manipula pixel por pixel. Neste momento, elemento Canvas não suporta os &#8220;manipuladores&#8221; de eventos (por exemplo, ter um retângulo 20x60px dentro de um canvas que seja clicável). Já com o SVG isso é possível.</p>
<p>Canvas em seu estado &#8220;natural&#8221; não é acessível. O SVG, porém, é bastante acessível.</p>
<p>No entanto existe diferenças significativas de desempenho entre Canvas e SVG. O resultado do experimento descrito no link (<a href="http://www.borismus.com/canvas-vs-svg-performance" target="_blank">http://www.borismus.com/canvas-vs-svg-performance</a>) é que: Canvas é mais adequado para um &#8220;gráficos intensivos&#8221; onde o objeto são os redesenhos com freqüência (como um jogo), enquanto o SVG é melhor para aplicações que envolvem grandes áreas de processamento (como Google Maps).</p>
<h2>POSSO USÁ-LOS AGORA?</h2>
<p>Sim, pode. Existem muitas iniciativas para permitir que os navegadores que não suportam SVG ou Canvas tornarem-se &#8220;usáveis&#8221; por outros meios. O Google tem um impressionante projeto <strong>SVG Web</strong> (<a href="http://code.google.com/p/svgweb/" target="_blank">http://code.google.com/p/svgweb/</a>) que usa o Flash para renderizar SVG em navegadores que não suportam SVG nativamente. Para Canvas, o Google tem uma biblioteca &#8220;<strong>explorecanvas</strong>&#8221; (<a href="http://code.google.com/p/explorercanvas/" target="_blank">http://code.google.com/p/explorercanvas/</a>) que utiliza VML (ou Silverlight) para processar os elementos Canvas (basta incluir o arquivo excanvas.js, e ele deve funcionar) no Internet Explorer.</p>
<h2>ENTÃO&#8230; QUEM GANHA?</h2>
<p>Ambos. Estas é uma fase fantástica para SVG e Canvas. Finalmente temos uma alternativa natural para o &#8220;Flash&#8221; e animação de necessidade básica. Mantenha seus olhos abertos no &#8220;mailing list&#8221;  do &#8220;W3C HTML Working Group&#8221; (<a href="http://lists.w3.org/Archives/Public/public-html/" target="_blank">http://lists.w3.org/Archives/Public/public-html/</a>) para as últimas notícias.</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/svg-vs-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

