<?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>Boteco Digital &#187; Web</title>
	<atom:link href="http://www.botecodigital.info/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.botecodigital.info</link>
	<description></description>
	<lastBuildDate>Thu, 26 Jan 2012 18:36:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTML5 novos elementos de estrutura</title>
		<link>http://www.botecodigital.info/web/html5-novos-elementos-de-estrutura/</link>
		<comments>http://www.botecodigital.info/web/html5-novos-elementos-de-estrutura/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 18:09:19 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1957</guid>
		<description><![CDATA[O HTML5 vem para ser a atualização da linguagem HTML. Ela cria várias novas tags na linguagem para que o CSS e o Javascript fazerem melhor seu trabalho sem precisar da instalação de vários plugin, compromentendo o desempenho, e trazer mais semântica ao código HTML. Embora o padrão não esteja terminado e plenamente suportado, podemos começar a utilizar alguns de seus recursos já que ele esta sendo disponibilizados em módulos. Uma das mudanças que já podemos utilizar é a estrutura [...]]]></description>
			<content:encoded><![CDATA[<p>O HTML5 vem para ser a atualização da linguagem HTML. Ela cria várias novas tags na linguagem para que o CSS e o Javascript fazerem melhor seu trabalho sem precisar da instalação de vários plugin, compromentendo o desempenho, e trazer mais semântica ao código HTML. </p>
<p>Embora o padrão não esteja terminado e plenamente suportado, podemos começar a utilizar alguns de seus recursos já que ele esta sendo disponibilizados em módulos. Uma das mudanças que já podemos utilizar é a  estrutura da página, que foram criadas tags novas para representar semanticamente a estrutura da página.</p>
<p>Antigamente(HTML4/XHTML) utilizávamos a seguinte estrutura:</p>
<div style="text-align:center">
<a href="http://www.botecodigital.info/wp-content/uploads/2012/01/structure-div.png" class="cboxModal" rel="lightbox[1957]" title="structure-div"><img src="http://www.botecodigital.info/wp-content/uploads/2012/01/structure-div.png" alt="" title="structure-div" class="aligncenter size-medium wp-image-1971" /></a>
</div>
<p>Para deixar mais semântica a estrutura da página foram adicionadas as tags: <strong>section</strong> , <strong>article</strong>, <strong>aside</strong> e <strong>nav</strong>, <strong>header</strong> e <strong>footer</strong>.</p>
<div style="text-align:center">
<a href="http://www.botecodigital.info/wp-content/uploads/2012/01/structure-html5.png" class="cboxModal" rel="lightbox[1957]" title="structure-html5"><img src="http://www.botecodigital.info/wp-content/uploads/2012/01/structure-html5.png" alt="" title="structure-html5" class="aligncenter size-medium wp-image-1972" /></a>
</div>
<p>Utilizando estas nova tags podemos criar a seguinte estrutura:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;

&lt;html&gt;

	&lt;head&gt;
		&lt;title&gt;Exemplo de estrutura de site em HTML5&lt;/title&gt;
		&lt;meta charset=&quot;utf-8&quot;&gt;
		&lt;link rel=&quot;stylesheet&quot; href=&quot;estilo.css&quot;&gt;
	&lt;/head&gt;

	&lt;body&gt;
		&lt;div id=&quot;site&quot;&gt;
			&lt;header id=&quot;topo&quot;&gt;
				&lt;h1&gt;Titulo do site&lt;/h1&gt;
			&lt;/header&gt;

			&lt;nav id=&quot;menu&quot;&gt;
				&lt;ul&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
					&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
				&lt;/ul&gt;
			&lt;/nav&gt;
			&lt;section id=&quot;conteudo&quot;&gt;
				&lt;header&gt;
					&lt;h2&gt;Titulo do artigo&lt;/h2&gt;
					&lt;small&gt;12/12/2012&lt;/small&gt;
				&lt;/header&gt;

				&lt;article&gt;

				&lt;/article&gt;
				&lt;footer&gt;
					Por Fulano
				&lt;/footer&gt;
			&lt;/section&gt;	

			&lt;aside&gt;

			&lt;/aside&gt;
			&lt;footer&gt;
				&lt;a href=&quot;http://www.botecodigital.info&quot;&gt;Boteco Digital&lt;/a&gt;
			&lt;/footer&gt;
		&lt;/div&gt;
	&lt;/body&gt;

&lt;/html&gt;
</pre>
<p><a href="http://www.botecodigital.info/exemplos/estruturahtml5/" target="_blank">Veja o exemplo</a></p>
<p>Para começar o <strong>DOCTYPE</strong> foi bastante simplificado, bem como a <strong>metatag charset</strong>. Eu particularmente agradeço já que nunca consegui decorá-las, sempre tive que abrir um arquivo e copiar.</p>
<p>Vamos a uma breve descrição das novas tags.</p>
<h4>section</h4>
<p>A tag <em>section</em> define uma nova seção do site, uma área genérica do site. Por exemplo a home pode ser dividida em destaque, novidades, chamada para conteúdo completo.</p>
<h4>header</h4>
<p>O elemento <em>header</em> representa uma área de introdução. Pode ser utilizado para agrupar índices de conteúdo, campos de busca, cabeçalho do site com titulo ou logo.</p>
<h4>footer</h4>
<p>A tag <em>footer</em> representa o rodapé do site, ou de uma seção.</p>
<h4>nav</h4>
<p>O elemento <em>nav</em> é utilizado para representar uma seção da página que contém links para outras partes do site. Este elemento deve ser utilizado para grupos de links importantes do site tipicamente menus de navegação.</p>
<h4>article</h4>
<p>O elemento <em>article</em> é utilizado para representar o conteúdo do site propriamente dito, como posts, artigos e outros textos em geral.</p>
<h4>aside</h4>
<p>A tag <em>aside</em>  representa um bloco de conteúdo que referência o conteúdo que envolta do elemento aside.</p>
<p>Porém vários navegadores, principalmente os mais antigos, não reconhecem devidamente as novas marcações. Para mantermos a compatibilidade é necessário estilizar algumas tags usando a seguinte regra CSS.</p>
<pre class="brush: css; title: ; notranslate">
header , footer , article , aside , nav , section {display:block}
</pre>
<p>Para verificar o suporte a HTML5 e CSS3  podemos utilizar a  Modernizr (<a href="http://www.modernizr.com/" target="_blank">http://www.modernizr.com/</a>) que é uma biblioteca de detectação que lhe permite  verificar o suporte da maioria das características do HTML5 e CSS3. O Modernizr roda automaticamente assim que você o adiciona no head do documento fazendo funcionar as novas tags em navegadores mais antigos(IE8). </p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/web/construindo-uma-galeria-de-fotos-com-o-plugin-prettyphoto-do-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery" title="Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery" /></a> <a href="http://www.botecodigital.info/web/construindo-uma-galeria-de-fotos-com-o-plugin-prettyphoto-do-jquery/" rel="bookmark" class="crp_title">Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery</a></li><li><a href="http://www.botecodigital.info/jquery/menu-sanfona-com-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Menu Sanfona com JQuery" title="Menu Sanfona com JQuery" /></a> <a href="http://www.botecodigital.info/jquery/menu-sanfona-com-jquery/" rel="bookmark" class="crp_title">Menu Sanfona com JQuery</a></li><li><a href="http://www.botecodigital.info/jquery/iniciando-com-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Iniciando com JQuery" title="Iniciando com JQuery" /></a> <a href="http://www.botecodigital.info/jquery/iniciando-com-jquery/" rel="bookmark" class="crp_title">Iniciando com JQuery</a></li><li><a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Validando formulários com JQuery-Plugin-Validation" title="Validando formulários com JQuery-Plugin-Validation" /></a> <a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark" class="crp_title">Validando formulários com JQuery-Plugin-Validation</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/web/html5-novos-elementos-de-estrutura/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando LAMP no Ubuntu</title>
		<link>http://www.botecodigital.info/php/instalando-lamp-no-ubuntu/</link>
		<comments>http://www.botecodigital.info/php/instalando-lamp-no-ubuntu/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 18:21:11 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1387</guid>
		<description><![CDATA[Para para começar vamos logo dizendo que LAMP é uma abreviação para os seguintes software Linux, Apache, MySQL e PHP que juntos formam o ambiente que necessitamos para desenvolver e hospedar nossos sites. 1. Instalar o MySQL Durante a instalação a senha do usuário root do MySQL será pedida. 2. Instalar o Apache 2 Depois instalado verifique se esta funcionando acesse http://localhost se aparecer um &#8220;It works!&#8221; está funcionando. 3. Instalar o PHP 5 Não se esqueça de instalar também [...]]]></description>
			<content:encoded><![CDATA[<p>Para para começar vamos logo dizendo que LAMP é uma abreviação para os seguintes software <strong>Linux</strong>, <strong>Apache</strong>, <strong>MySQL</strong> e <strong>PHP</strong> que juntos formam o ambiente que necessitamos para desenvolver e hospedar nossos sites.</p>
<h3>1. Instalar o MySQL</h3>
<pre class="brush: plain; title: ; notranslate">
sudo aptitude install mysql-server mysql-client
</pre>
<p>Durante a instalação a senha do usuário root do MySQL será pedida.</p>
<h3>2. Instalar o Apache 2</h3>
<pre class="brush: plain; title: ; notranslate">
sudo aptitude install apache2
</pre>
<p>Depois instalado verifique se esta funcionando acesse <em>http://localhost</em> se aparecer um &#8220;It works!&#8221; está funcionando.</p>
<h3>3. Instalar o PHP 5</h3>
<pre class="brush: plain; title: ; notranslate">
sudo aptitude install php5 libapache2-mod-php5
</pre>
<p>Não se esqueça de instalar também o modulo PHP do MySQL.</p>
<pre class="brush: plain; title: ; notranslate">
 apt-get install php5-mysql
</pre>
<p>Bom já temos o básico agora. É só reiniciar o Apache que deve estar tudo funcionando.</p>
<pre class="brush: plain; title: ; notranslate">
/etc/init.d/apache2 restart
</pre>
<h3>4. Habilitando o mod_rewrite</h3>
<p>O <strong>mod_rewrite</strong> é utilizado por vários CMS, Framework e etc. Então é sempre uma boa idéia habilitá-lo. Para você que não sabe o que é o <strong>mod_rewrite</strong> veja o post sobre <a href="http://www.botecodigital.info/php/urls-amigaveis/">URLs amigáveis</a></p>
<pre class="brush: plain; title: ; notranslate">
a2enmod rewrite
</pre>
<p>E altere o seguinte trecho de código no arquivo <em>/etc/apache2/sites-enabled/000-default</em>:</p>
<pre class="brush: plain; title: ; notranslate">
        &lt;Directory /var/www/&gt;
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        &lt;/Directory&gt;
</pre>
<p>por:</p>
<pre class="brush: plain; title: ; notranslate">
        &lt;Directory /var/www/&gt;
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        &lt;/Directory&gt;
</pre>
<p>Agora reinicie o Apache e tome uma cerveja! T++</p>
<p>[UPDATE]<br />
Pessoal para quem precisar usar o PostgreSQL (LAPP?):</p>
<pre class="brush: plain; title: ; notranslate">
 apt-get install php5-pgsql
</pre>
<p>[/UPDATE]</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/outros/recuperando-a-senha-de-root-do-mysql/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/09/mysql_logo.png" class="crp_thumb wp-post-image" alt="Recuperando a senha de root  do MySQL" title="Recuperando a senha de root  do MySQL" /></a> <a href="http://www.botecodigital.info/outros/recuperando-a-senha-de-root-do-mysql/" rel="bookmark" class="crp_title">Recuperando a senha de root  do MySQL</a></li><li><a href="http://www.botecodigital.info/php/urls-amigaveis/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="URLs amigáveis" title="URLs amigáveis" /></a> <a href="http://www.botecodigital.info/php/urls-amigaveis/" rel="bookmark" class="crp_title">URLs amigáveis</a></li><li><a href="http://www.botecodigital.info/linux/instalando-intel-wifi-5100-no-debian/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/06/linux.png" class="crp_thumb wp-post-image" alt="Instalando Intel WiFi 5100 no Debian" title="Instalando Intel WiFi 5100 no Debian" /></a> <a href="http://www.botecodigital.info/linux/instalando-intel-wifi-5100-no-debian/" rel="bookmark" class="crp_title">Instalando Intel WiFi 5100 no Debian</a></li><li><a href="http://www.botecodigital.info/linux/instalar-o-player-clementine-no-ubuntu/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/12/clementine-icon-256-150x150.png" class="crp_thumb wp-post-image" alt="Instalar o player Clementine no Ubuntu" title="Instalar o player Clementine no Ubuntu" /></a> <a href="http://www.botecodigital.info/linux/instalar-o-player-clementine-no-ubuntu/" rel="bookmark" class="crp_title">Instalar o player Clementine no Ubuntu</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/instalando-lamp-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS3 &#8211; text-shadow</title>
		<link>http://www.botecodigital.info/css/css3-text-shadow/</link>
		<comments>http://www.botecodigital.info/css/css3-text-shadow/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 22:10:55 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[sombra]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1254</guid>
		<description><![CDATA[O CSS3 está vindo ai certo, alguns browser já estão implementando algumas coisas legais que irão nos livrar de muitos &#8220;POGs&#8221; que somos obrigados a fazer e poupar bastante trabalho. Hoje gostaria de apresentar a propriedade text-shadow que é simplesmente a sombra do texto, e já esta disponível para a maior parte dos navegadores. Onde: Medida 1: é o deslocamento a direita(com valores negativos a sobra irá para esquerda). Medida 2: é o deslocamento para baixo(com valores negativos a sombra [...]]]></description>
			<content:encoded><![CDATA[<p>O CSS3 está vindo ai certo, alguns browser já estão implementando algumas coisas legais que irão nos livrar de muitos &#8220;POGs&#8221; que somos obrigados a fazer e poupar bastante trabalho.</p>
<p>Hoje gostaria de apresentar a propriedade <strong>text-shadow</strong> que é simplesmente a sombra do texto, e já esta disponível para a maior parte dos navegadores.</p>
<pre class="brush: css; title: ; notranslate">
seletor{
	text-shadow: medida1 medida2 medida3 cor;
}
</pre>
<p>Onde:</p>
<p><em>Medida 1:</em> é o deslocamento a direita(com valores negativos a sobra irá para esquerda).</p>
<p><em>Medida 2:</em> é o deslocamento para baixo(com valores negativos a sombra irá para cima).</p>
<p><em>Medida 3: </em> é o raio para o efeito de blur na sombra.</p>
<p><em>Cor:</em> é a cor da sombra.</p>
<p>Para ficar mais claro <a href="http://www.botecodigital.info/exemplos/text-shadow/textosombra.html">veja o exemplo das propriedade text-shadow</a>.</p>
<p>Se você não está utilizando um navegador com suporte a propriedade veja abaixo como deve ser mostrado.</p>
<div style="text-align:center">
<img src="http://www.botecodigital.info/wp-content/uploads/2010/10/text-shadow.png" alt="" title="text-shadow" width="433" height="264" class="aligncenter size-full wp-image-1255" />
</div>
<p>Um recurso que também é interesssante é a possibilidade de colocar várias sombras em um texto apenas adicionando mais valores separados por virgula.</p>
<pre class="brush: css; title: ; notranslate">
seletor{
	text-shadow: 10px -10px #CCC, 20px -20px #F00, 30px -30px #00F;
}
</pre>
<p>Deve ser visualizada assim:</p>
<p><img src="http://www.botecodigital.info/wp-content/uploads/2010/11/text-shadow2.png" alt="" title="text-shadow2" width="438" height="265" class="aligncenter size-full wp-image-1259" /></p>
<p>[Baseado no artigo do <a href="http://imasters.com.br/artigo/7469/css/css3_sombras_em_textos/">Maujor</a>]</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/css/css-sprite/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/01/css.png" class="crp_thumb wp-post-image" alt="CSS Sprite" title="CSS Sprite" /></a> <a href="http://www.botecodigital.info/css/css-sprite/" rel="bookmark" class="crp_title">CSS Sprite</a></li><li><a href="http://www.botecodigital.info/linux/redimensionando-imagens-em-lotebatch-process-com-gimp/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/07/gimp-150x150.png" class="crp_thumb wp-post-image" alt="Redimensionando imagens em lote(Batch Process) com Gimp" title="Redimensionando imagens em lote(Batch Process) com Gimp" /></a> <a href="http://www.botecodigital.info/linux/redimensionando-imagens-em-lotebatch-process-com-gimp/" rel="bookmark" class="crp_title">Redimensionando imagens em lote(Batch Process) com Gimp</a></li><li><a href="http://www.botecodigital.info/linux/instalar-postgresql-9-no-ubuntu/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/12/postgresql-150x150.png" class="crp_thumb wp-post-image" alt="Instalar PostgreSQL 9 no Ubuntu" title="Instalar PostgreSQL 9 no Ubuntu" /></a> <a href="http://www.botecodigital.info/linux/instalar-postgresql-9-no-ubuntu/" rel="bookmark" class="crp_title">Instalar PostgreSQL 9 no Ubuntu</a></li><li><a href="http://www.botecodigital.info/navegadores/extensoes-essenciais-para-firefox/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/09/navegadores.png" class="crp_thumb wp-post-image" alt="Extensões do Firefox essenciais para um desenvolvedores web" title="Extensões do Firefox essenciais para um desenvolvedores web" /></a> <a href="http://www.botecodigital.info/navegadores/extensoes-essenciais-para-firefox/" rel="bookmark" class="crp_title">Extensões do Firefox essenciais para um desenvolvedores web</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/css/css3-text-shadow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementando um Layout simples</title>
		<link>http://www.botecodigital.info/css/implementando-um-layout-simples/</link>
		<comments>http://www.botecodigital.info/css/implementando-um-layout-simples/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 16:46:51 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Video-Tutorial]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[videoaula]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1233</guid>
		<description><![CDATA[Este foi um Layout que passei como um pequeno trabalho para os alunos do módulo web do Técnico em Informática do SENAC semestre passado e tinha ficado de postar no blog. Bom promessa é divida e a minha já estava bem atrasada mas vamos lá. Para quem quiser em uma melhor resolução pode baixar aqui. E para quem quiser os arquivos do layout esta aqui Posts Relacionados: Construindo um Layout com HTML/CSS Baixando e instalando JDK 1.6 Curta: Usuários Linux [...]]]></description>
			<content:encoded><![CDATA[<p>Este foi um Layout que passei como um pequeno trabalho para os alunos do módulo web do Técnico em Informática do SENAC semestre passado e tinha ficado de postar no blog. Bom promessa é divida e a minha já estava bem atrasada mas vamos lá.</p>
<div style="text-align:center">
<object id='playerFlash' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='500' height='375'><param name='movie' value='http://www.videolog.tv/ajax/codigoPlayer.php?id_video=584581&#038;relacionados=S&#038;default=S&#038;lang=PT_BR&#038;cor_fundo=FFFFFF&#038;cor_titulo=777777&#038;hd=S&#038;swf=1&#038;width=500&#038;height=375' /><param name='flashvars' value='id_video=584581' /><param name='allowScriptAccess' value='always' /><param name='allowFullScreen' value='true' /><param name='wmode' value='opaque' /><embed src="http://www.videolog.tv/ajax/codigoPlayer.php?id_video=584581&#038;relacionados=S&#038;default=S&#038;lang=PT_BR&#038;cor_fundo=FFFFFF&#038;cor_titulo=777777&#038;hd=S&#038;swf=1&#038;width=500&#038;height=375" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="375"></embed></object></p>
</div>
<p>Para quem quiser em uma melhor resolução pode <a href="http://www.mediafire.com/?gvye491xnte193s">baixar aqui</a>. E para quem quiser os arquivos do <a href="http://www.botecodigital.info/exemplos/layout.zip">layout esta aqui</a></p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/css/construindo-um-layout-com-htmlcss/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/video.png" class="crp_thumb wp-post-image" alt="Construindo um Layout com HTML/CSS" title="Construindo um Layout com HTML/CSS" /></a> <a href="http://www.botecodigital.info/css/construindo-um-layout-com-htmlcss/" rel="bookmark" class="crp_title">Construindo um Layout com HTML/CSS</a></li><li><a href="http://www.botecodigital.info/video-tutorial/baixando-e-instalando-jdk-1-6/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/java3.png" class="crp_thumb wp-post-image" alt="Baixando e instalando JDK 1.6" title="Baixando e instalando JDK 1.6" /></a> <a href="http://www.botecodigital.info/video-tutorial/baixando-e-instalando-jdk-1-6/" rel="bookmark" class="crp_title">Baixando e instalando JDK 1.6</a></li><li><a href="http://www.botecodigital.info/linux/curta-usuarios-linux/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/video.png" class="crp_thumb wp-post-image" alt="Curta: Usuários Linux" title="Curta: Usuários Linux" /></a> <a href="http://www.botecodigital.info/linux/curta-usuarios-linux/" rel="bookmark" class="crp_title">Curta: Usuários Linux</a></li><li><a href="http://www.botecodigital.info/video/danca-de-richard-stallman-fisl10-em-porto-alegre-brasil/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/video2.png" class="crp_thumb wp-post-image" alt="Dança de Richard Stallman com o mascote do GNU na 10 ª edição do FISL em Porto Alegre &#8211; Brasil." title="Dança de Richard Stallman com o mascote do GNU na 10 ª edição do FISL em Porto Alegre &#8211; Brasil." /></a> <a href="http://www.botecodigital.info/video/danca-de-richard-stallman-fisl10-em-porto-alegre-brasil/" rel="bookmark" class="crp_title">Dança de Richard Stallman com o mascote do GNU na 10 ª edição do FISL em Porto Alegre &#8211; Brasil.</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/css/implementando-um-layout-simples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando um CAPTCHA em PHP</title>
		<link>http://www.botecodigital.info/php/criando-um-captcha-em-php/</link>
		<comments>http://www.botecodigital.info/php/criando-um-captcha-em-php/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:12:11 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=946</guid>
		<description><![CDATA[Um problema comum para quem fornece um formulário de contato ou disponibiliza algum sistema de comentário em um site é o aumento de spam enviados por bots(robos) que lêem os campos do formulário e enviam as informações de spam via POST. Uma maneira muito comum de se proteger deste tipo de ataque é diferenciar se quem está enviando as informações é uma pessoa ou um bot. Isso pode ser feito criando um código que seja de fácil leitura para o [...]]]></description>
			<content:encoded><![CDATA[<p>Um problema comum para quem fornece um formulário de contato ou disponibiliza algum sistema de comentário em um site é o aumento de spam enviados por bots(robos) que lêem os campos do formulário e enviam as informações de spam via POST.</p>
<p>Uma maneira muito comum de se proteger deste tipo de ataque é diferenciar se quem está enviando as informações é uma pessoa ou um bot. Isso pode ser feito criando um código que seja de fácil leitura para o usuário humano e difícil para máquinas e pedir para o usuário digitar este código junto com as outras informações do formulário.</p>
<p>Este sistema é muito comum hoje em dia e recebe o nome de CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart ou Teste Público Totalmente Automatizado para Diferenciar Humanos de Computadores) e vamos agora apreender com fazer um simples.</p>
<p>Começaremos criando uma imagem com um fundo um pouco bagunçado, quanto mais bagunçado melhor, isso dificulta a leitura por bots.</p>
<div style="text-align: center;"><img class="aligncenter size-full wp-image-948" title="fundocaptch" src="http://www.botecodigital.info/wp-content/uploads/2010/03/fundocaptch.png" alt="" width="230" height="50" /></div>
<p>O CAPTCHA vai funcionar da seguinte forma, vamos gerar um código baseado na hora do sistema e armazená-lo em uma sessão, após isso iremos criar uma imagem com o fundo que criamos acima e escrever o nosso código gerado sobre ele.</p>
<p>Vamos então aos código</p>
<pre class="brush: php; title: ; notranslate">
session_start();

$codigoCaptcha = substr(md5( time() ) ,0,9);

$_SESSION['captcha'] = $codigoCaptcha;

$imagemCaptcha = imagecreatefrompng(&quot;fundocaptch.png&quot;);

$fonteCaptcha = imageloadfont(&quot;anonymous.gdf&quot;);

$corCaptcha = imagecolorallocate($imagemCaptcha,255,0,0);

imagestring($imagemCaptcha,$fonteCaptcha,15,5,$codigoCaptcha,$corCaptcha);

header(&quot;Content-type: image/png&quot;);

imagepng($imagemCaptcha);

imagedestroy($imagemCaptcha);
</pre>
<p>Na linha 3 geramos nosso código “aleatório” começamos pegando o <em>timestamp</em> através da função <a href="”http://www.php.net/manual/pt_BR/function.time.php”" target="”_blank”">time</a> e aplicamos sobre ele a função <a href="http://www.php.net/manual/pt_BR/function.md5.php“" target="”_blank”">md5</a> deste código <em>md5</em> pegamos os 9 primeiros caracteres(se você quiser pode pegar mais ou menos) através da função  <a href="http://br.php.net/manual/pt_BR/function.substr.php" target="”_blank”">substr</a>.</p>
<p>Na linha 5 salvamo nosso código na sessão para que possamos compará-lo mais tarde.</p>
<p>Na linha 7 criamos uma imagem a partir da imagem de fundo que criamos.</p>
<p>Na linha 9 carregamos uma fonte através da função <a href="http://www.php.net/manual/pt_BR/function.imageloadfont.php" target="_blank"> imageloadfont</a> que carrega define a fonte que será utilizada para escrever nosso código de <strong>captcha</strong> na imagem criada na linha 7.</p>
<p>Na linha 11 utilizamos a função <a href="http://www.php.net/manual/pt_BR/function.imagecolorallocate.php" target="_blank">imagecolorallocate</a> para gerar uma cor para o código que iremos inserir na imagem.</p>
<p>Na linha 13 utilizamos a função <a href="http://www.php.net/manual/pt_BR/function.imagecolorallocate.php" target="_blank">imagestring</a> para &#8220;desenhar&#8221; o código gerado na linha 3 na imagem criada na linha 8, utilizando a fonte definida na linha 9.</p>
<p>Na linha 15 mudamos o cabeçalho do arquivo para ele ser um arquivo do tipo imagem no formato png, isso faz com que o navegador mostre a imagem e não o código binarios em forma de texto.</p>
<p>Na linha 17 enviamos a imagem gerada para o navegador. Na linha 19 desalocamos o espaço utilizado pela imagem criada.</p>
<p>Para utilizar o captcha precisamos de um formulário e dentro dele exibiremos a nossa imagem através da <em>tag</em> <strong>IMG</strong> e também precisaremos de um campo para o usuário inserir o código captcha.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;form action=&quot;valida.php&quot; method=&quot;post&quot;&gt;
    &lt;img src=&quot;captcha.php&quot; alt=&quot;código captcha&quot; /&gt;

    &lt;label for=&quot;captcha&quot;&gt;Digite o código&lt;/label&gt;
&lt;input id=&quot;captcha&quot; name=&quot;captcha&quot; type=&quot;text&quot; /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt;
&lt;/form&gt;
</pre>
<p>Agora basta compara o valor passado por POST no input <strong>captcha</strong> com o valor armazenada em sessão.</p>
<pre class="brush: php; title: ; notranslate">
if( $_SESSION['captcha'] == $_POST['captcha']){
        echo &quot;&lt;h1&gt;Ok - Código Correto&lt;/h1&gt;&quot;;
    }else{
        echo &quot;&lt;h1&gt;Erro - Código digitado errado&lt;/h1&gt;&quot;;
    }
</pre>
<p><a href="http://www.botecodigital.info/exemplos/captcha/form.php" target="_blank">Aqui você pode visializar o exemplo</a></p>
<p><a href="http://www.botecodigital.info/exemplos/captcha/captcha.zip">Download do exemplo</a>.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/php/redimensionando-imagens-com-php/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Redimensionando imagens com PHP" title="Redimensionando imagens com PHP" /></a> <a href="http://www.botecodigital.info/php/redimensionando-imagens-com-php/" rel="bookmark" class="crp_title">Redimensionando imagens com PHP</a></li><li><a href="http://www.botecodigital.info/php/listando-arquivos-de-um-diretorio-em-php/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Listando arquivos de um diretório em PHP" title="Listando arquivos de um diretório em PHP" /></a> <a href="http://www.botecodigital.info/php/listando-arquivos-de-um-diretorio-em-php/" rel="bookmark" class="crp_title">Listando arquivos de um diretório em PHP</a></li><li><a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-1/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Exemplo de autenticação em PHP utilizando sessão- Parte 1" title="Exemplo de autenticação em PHP utilizando sessão- Parte 1" /></a> <a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-1/" rel="bookmark" class="crp_title">Exemplo de autenticação em PHP utilizando sessão- Parte 1</a></li><li><a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-2/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Exemplo de autenticação em PHP utilizando sessão- Parte 2" title="Exemplo de autenticação em PHP utilizando sessão- Parte 2" /></a> <a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-2/" rel="bookmark" class="crp_title">Exemplo de autenticação em PHP utilizando sessão- Parte 2</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/criando-um-captcha-em-php/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>PDO &#8211; PHP Data Object &#8211; Trocar de banco de dados já não é dor de cabeça</title>
		<link>http://www.botecodigital.info/php/pdo-php-data-object-trocar-de-banco-de-dados-ja-nao-e-dor-de-cabeca/</link>
		<comments>http://www.botecodigital.info/php/pdo-php-data-object-trocar-de-banco-de-dados-ja-nao-e-dor-de-cabeca/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 16:25:50 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[objetos]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[pdo]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=925</guid>
		<description><![CDATA[Se você desenvolve com PHP há algum tempo e necessitou trocar de banco de dados sabe que o PHP pode causar um certo problema, pois possui funções com nomes diferentes para conectar a banco de dados diferentes. O que muitas vezes inviabiliza o processo. Aqueles que já trabalharam com Java sabem que existe algo chamado JDBC que resolve este problema, fornecendo uma camada de abstração de dados através de interfaces, bastando carregar o driver correto e utilizar sempre os mesmos [...]]]></description>
			<content:encoded><![CDATA[<p>Se você desenvolve com PHP há algum tempo e necessitou trocar de banco de dados sabe que o PHP pode causar um certo problema, pois possui funções com nomes diferentes para conectar a banco de dados diferentes. O que muitas vezes inviabiliza o processo.</p>
<p>Aqueles que já trabalharam com Java sabem que existe algo chamado JDBC que resolve este problema, fornecendo uma camada de abstração de dados através de interfaces, bastando carregar o driver correto e utilizar sempre os mesmos métodos para acessar qualquer banco de dados.</p>
<p>Para os desavisados o PHP possui, desde a versão 5, algo parecido que se chama <strong>PDO &#8211; PHP Data Objects</strong>, permitindo o acesso a vários bancos de dados chamando sempre as mesmas funções.</p>
<p>Os drivers PDOs devem ser carregados pelo módulo PHP então temos que habilita-los e isso é feito dentro do arquivo <em>php.ini</em>.</p>
<pre class="brush: plain; title: ; notranslate">
extension=pdo.so
extension=pdo_mysql.so
extension=pdo_pgsql.so
extension=pdo_sqlite.so
</pre>
<p>Normalmente não temos acesso ao arquivo <em>php.ini</em> pois contratamos um serviço de hospedagem, então para ver os drivers que estão habilitados na hospedagem  que contratamos devemos executar o código abaixo:</p>
<pre class="brush: php; title: ; notranslate">
foreach(PDO::getAvailableDrivers() as $driver){
    echo $driver.'&lt;br /&gt;';
}
</pre>
<p>Como o próprio nome do recurso &#8220;PHP Data <strong>Objects</strong>&#8221; a conexão e a manipulação dos dados é feita utilizando <a href="http://www.botecodigital.info/php/classes-em-php/">uma classe do PHP</a> chamada  <strong>PDO</strong> &#8211; que deve ser instanciado com as informações de conexão ao banco.</p>
<p>Exemplo:</p>
<pre class="brush: php; title: ; notranslate">

$conn = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '123456');
</pre>
<p>Como podemos notar o construtor do objeto <strong>PDO</strong> aceita três parâmetros, o primeiro é uma string contendo o driver a ser utilizado <strong>mysql</strong>, o local onde o banco esta rodando <strong>localhost</strong>, a porta que o banco esta escutando <strong>3306</strong> e o nome do banco de dados <strong>teste</strong>. O segundo parâmetro é o usuário de acesso ao banco de dados e o terceiro é a senha de acesso.</p>
<p>A partir de agora podemos utilizar o objeto armazenado em <em>$conn </em> para manipular os dados no banco de dados.</p>
<p>Como sabemos quando estamos trabalhando com banco de dados  vários erros podem acontecer como o banco de dados estar indisponível entre outra coisas. O <strong>PDO</strong> pode ser configurado para gerar <a href="http://imasters.uol.com.br/artigo/4451/php/tratamento_de_excecoes_no_php_5/">exceção</a> quando algum erro destes ocorrem sendo capturados com um bloco try{&#8230;}catch(){&#8230;} sendo lançada a exceção <strong>PDOException</strong>.</p>
<p>Abaixo um exemplo de inserção utilizando a classe PDO:</p>
<pre class="brush: php; title: ; notranslate">
try{

    //instancia o objeto PDO, conectando com o banco mysql
    $conn = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '123456');

    //configurando para utilizar exceções
    $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    //executa as instruções SQL
    $conn-&gt;exec(&quot;INSERT INTO usuarios (login,senha,nome) VALUES ('rodrigo', '123456', 'rodrigo')&quot;);
    $conn-&gt;exec(&quot;INSERT INTO usuarios (login,senha,nome) VALUES ('thiago', '654321', 'Thiago')&quot;);
    $conn-&gt;exec(&quot;INSERT INTO usuarios (login,senha,nome) VALUES ('maria', '654123', 'Maria')&quot;);

    //fecha a conexão
    $conn = null;
}catch (PDOException $i){
        //se houver exceção, exibe
        print &quot;Erro: &lt;code&gt;&quot; . $i-&gt;getMessage() . &quot;&lt;/code&gt;&quot;;
}
?&gt;
</pre>
<p>Como vemos nas linha 10,11,12 utilizamos o método <em>exec</em> para executar comando SQL no banco de dados.</p>
<p>Agora  veremos como  consultar utilizando a classe PDO:</p>
<pre class="brush: php; title: ; notranslate">
try{
        //instancia o objeto PDO, conectando com o banco mysql
    $conn = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '123456');
    //configurando para utilizar exceções
    $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    //executa a instrução de consulta
    $result = $conn-&gt;query(&quot;SELECT senha,login FROM usuarios&quot;);
    if($result){
                //percorre os resultados via o laço foreach
                foreach($result as $linha){
                        //exibe o resultado
                        print $linha['login'] . &quot; - &quot; . $linha['senha'] . &quot;&lt;br&gt;\n&quot;;
                }

        }
    //fecha a conexão
    $conn = null;
}catch (PDOException $i){
        //se houver exceção, exibe
        print &quot;Erro: &lt;code&gt;&quot; . $i-&gt;getMessage() . &quot;&lt;/code&gt;&quot;;
}
</pre>
<p>Como vimos para executar uma consulta utilizanos a função <strong>query</strong> que retorna um objeto de resposta <a href="http://www.php.net/manual/pt_BR/class.pdostatement.php" target="_blank"><strong>PDOStatement </strong></a> que pode ser percorrido utilizando um laço <em>foreach</em>(linha 11).</p>
<p>Também é possível percorrer um objeto <strong>PDOStatement</strong> utilizando o método <strong>fetch</strong> dele tratar cada linha da consulta como um objeto.</p>
<p>Exemplo:</p>
<pre class="brush: php; title: ; notranslate">
try{
        //instancia o objeto PDO, conectando com o banco mysql
    $conn = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '123456');

    //configurando para utilizar exceções
    $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    //executa a instrução de consulta
    $result = $conn-&gt;query(&quot;SELECT login, senha FROM usuarios&quot;);

    if($result){
                //percorre os resultados via o fetch()
                while ($linha = $result-&gt;fetch(PDO::FETCH_OBJ)){
                        //exibe resultado
                        print $linha-&gt;login . &quot; - &quot; . $linha-&gt;senha . &quot;&lt;br&gt;\n&quot;;
                }

        }

    //fecha a conexão
    $conn = null;
}catch (PDOException $i){
        //se houver exceção, exibe
        print &quot;Erro: &lt;code&gt;&quot; . $i-&gt;getMessage() . &quot;&lt;/code&gt;&quot;;
}
?&gt;
</pre>
<p>Na linha  13 chamamos o método fetch que recebe a constante <strong>PDO::FETCH_OBJ</strong> que é responsável por definir que o retorno será um objeto. Também podemos passar as constantes <strong>PDO::FETCH_ASSOC</strong> que retorna um array com os indices sendo os nomes das colunas da consulta e <strong>PDO::FETCH_NUM</strong> que retorna um array com os indices numéricos.</p>
<p>Outra funcionalidade interessante que ameniza muitos erros é os famosos  do <strong>prepared statements</strong>. Veja o exemplo abaixo:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
try{

    //instancia o objeto PDO, conectando com o banco mysql
    $conn = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '');

    //configurando para utilizar exceções
    $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

	//prepara a consulta
	$result = $conn-&gt;prepare(&quot;INSERT INTO usuarios (login,senha,nome) VALUES (?, ?, ?)&quot;) ;

	//insere os valores nas ?
    $valores = array('rodrigo', '123456', 'rodrigo');

	//executa o comando SQL
    $result-&gt;execute($valores);

    //fecha a conexão
    $conn = null;
}catch (PDOException $i){
        //se houver exceção, exibe
        print &quot;Erro: &lt;code&gt;&quot; . $i-&gt;getMessage() . &quot;&lt;/code&gt;&quot;;
}
?&gt;
</pre>
<p>Com o uso dos <strong>prepared statements</strong> não precisamos ficar nos preocupando em concatenar várias variaveis, ou nos preocuparmos com escape de aspas e tudo mais, basta colocar os valores no array que será passado por parâmetro para o método <strong>execute</strong>.</p>
<p>Espero que tenham gostado. Para mais infomações consulte a <a href="http://www.php.net/manual/pt_BR/book.pdo.php" target="_blank">documentação da classe PDO</a></p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-1/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Exemplo de autenticação em PHP utilizando sessão- Parte 1" title="Exemplo de autenticação em PHP utilizando sessão- Parte 1" /></a> <a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-1/" rel="bookmark" class="crp_title">Exemplo de autenticação em PHP utilizando sessão- Parte 1</a></li><li><a href="http://www.botecodigital.info/outros/recuperando-a-senha-de-root-do-mysql/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/09/mysql_logo.png" class="crp_thumb wp-post-image" alt="Recuperando a senha de root  do MySQL" title="Recuperando a senha de root  do MySQL" /></a> <a href="http://www.botecodigital.info/outros/recuperando-a-senha-de-root-do-mysql/" rel="bookmark" class="crp_title">Recuperando a senha de root  do MySQL</a></li><li><a href="http://www.botecodigital.info/jquery/carregando-um-combobox-com-ajax-com-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Carregando um ComboBox com AJAX com JQuery" title="Carregando um ComboBox com AJAX com JQuery" /></a> <a href="http://www.botecodigital.info/jquery/carregando-um-combobox-com-ajax-com-jquery/" rel="bookmark" class="crp_title">Carregando um ComboBox com AJAX com JQuery</a></li><li><a href="http://www.botecodigital.info/java/conectando-java-com-hsqldb/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/java3.png" class="crp_thumb wp-post-image" alt="Conectando Java com HSQLDB" title="Conectando Java com HSQLDB" /></a> <a href="http://www.botecodigital.info/java/conectando-java-com-hsqldb/" rel="bookmark" class="crp_title">Conectando Java com HSQLDB</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/pdo-php-data-object-trocar-de-banco-de-dados-ja-nao-e-dor-de-cabeca/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UruguaianaTech</title>
		<link>http://www.botecodigital.info/php/uruguaianatech/</link>
		<comments>http://www.botecodigital.info/php/uruguaianatech/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 01:27:42 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[cidão]]></category>
		<category><![CDATA[humberto moura]]></category>
		<category><![CDATA[jose inoue]]></category>
		<category><![CDATA[rodrigo aramburu]]></category>
		<category><![CDATA[senac uruguaiana]]></category>
		<category><![CDATA[Thiago Finardi]]></category>
		<category><![CDATA[ti uruguaiana]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=798</guid>
		<description><![CDATA[Chegamos ao fim do 1º Uruguaiana Tech, foram três dias de evento onde podemos colaborar de alguma forma com a nossa comunidade. Fiquei extremamante satisfeito com o resultado do evento, era muito prazeroso conversar com os participantes após as palestras, podendo assim os conhecer melhor e principalmente constatar que muitas pessoas estão testando softwares livre. Várias pessoas elogiaram a iniciativa e principalmente a qualidade do evento como um todo. A idéia da realização do UruguaianaTECH surgiu a partir da necessidade [...]]]></description>
			<content:encoded><![CDATA[<p>Chegamos ao fim do 1º Uruguaiana Tech, foram três dias de evento onde podemos colaborar de alguma forma com a nossa comunidade. Fiquei extremamante satisfeito com o resultado do evento, era muito prazeroso conversar com os participantes após as palestras, podendo assim os conhecer melhor e principalmente constatar que muitas pessoas estão testando softwares livre. Várias pessoas elogiaram a iniciativa e principalmente a qualidade do evento como um todo.</p>
<p>A idéia da realização do UruguaianaTECH surgiu a partir da necessidade de eventos na área de tecnologia da informação em nossa região, e principalmente para difundir a utilização do Software Livre em todos os setores de nossa comunidade.</p>
<p>O constante crescimento da utilização do software livre nas organizações nos últimos anos, demonstram que o reconhecimento dos benefícios é algo concreto, nosso país é considerado um dos maiores utilizadores desta tecnologia, onde também existem diversos colaboradores e mantenedores de aplicativos Livres.</p>
<p>Vemos na fronteira oeste, um mercado a ser explorado pois muitas organizações locais não fazem o uso de um Software Livre pelo fato de desconhecerem suas vantagens e benefícios.</p>
<p>Cabe a nós profissionais e estudantes da área de TI mudar este cenário, pois a evolução esta acontecendo, é nossa obrigação contribuir para que ela aconteça também em nossa cidade.</p>
<p>As vezes pensamos que em nossa cidade não há um mercado para os profissinais de TI, isto faz com que muitos estudantes recém formados acabem saindo de nossa cidade em busca de oportunidades, com isso nossa comunidade acaba perdendo qualidade nos serviços prestados. Com esta iniciativa esperamos demosntrar a nossa comunidade que dentro dela mesmo é possível encontrar profissionais qualificados e preparados para os desafios da área de TI.</p>
<p>Gostaria muito de agradecer a participação dos Professores Cidão e Humberto Moura que trouxeram um brilho a mais em nosso evento, a área de TI do Senac Uruguaiana, aos colaboradores voluntários que nos ajudaram na organização e principalmente aos nossos apoiadores, pois sem eles esta edição do Uruguaiana Tech não seria possível.</p>
<p>Agora fica a saudade dos bons momentos compartilhados durante o evento, o conhecimento que foi recebido e retribuido, pois como mencionei no evento: &#8220;O conhecimento é universal, nós aprendemos com alguém e é nossa OBRIGAÇÃO ensinar alguém&#8221;.</p>
<p>Nós nos comprometemos em levar esta causa adiante e faremos o que for necessário para alavancar nossa área de TI em nossa cidade, o sol nasce para todos e juntos faremos com que esta mudança aconteça.</p>
<p>#galeria pasta=&#8221;uruguaianatech&#8221;#</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="1º UruguaianaTech" title="1º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">1º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="2º UruguaianaTech" title="2º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">2º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark"><img width="50" height="33" src="http://www.botecodigital.info/wp-content/uploads/2011/11/uruguaianaTECH_.jpg" class="crp_thumb wp-post-image" alt="UruguaianaTECH – Capacitando profissionais" title="UruguaianaTECH – Capacitando profissionais" /></a> <a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark" class="crp_title">UruguaianaTECH – Capacitando profissionais</a></li><li><a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/08/tchelinux-150x150.png" class="crp_thumb wp-post-image" alt="TchêLinux Uruguaiana" title="TchêLinux Uruguaiana" /></a> <a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark" class="crp_title">TchêLinux Uruguaiana</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/uruguaianatech/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>1º UruguaianaTech</title>
		<link>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/</link>
		<comments>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 02:50:35 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[senac uruguaiana]]></category>
		<category><![CDATA[ti uruguaiana]]></category>
		<category><![CDATA[uruguaiana tech]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=778</guid>
		<description><![CDATA[Com a missão de educar para o trabalho em atividades do comércio de bens, serviços e turismo, o SENAC Uruguaiana promove nos dias 26, 27 e 28 de novembro o 1° UruguaianaTech, evento que visa difundir a utilização do Software Livre nos diversos setores de nossa comunidade. Sempre conectado às inovações do mercado e atento às novas tendências em tecnologia, o núcleo de TI do Senac Uruguaiana, ministrará palestras sobre os temas: Linux, Servidores, Segurança, Desenvolvimento de Aplicações Web e [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-777" title="logo" src="http://www.botecodigital.info/wp-content/uploads/2009/11/logo.png" alt="logo" width="423" height="174" /></p>
<p>Com a missão de educar para o trabalho em atividades do comércio de bens, serviços e turismo, o SENAC Uruguaiana promove nos dias <strong>26, 27 e 28</strong> de novembro o <a href="http://www.uruguaianatech.info" target="_blank"><strong>1° UruguaianaTech</strong></a>, evento que visa difundir a utilização do Software Livre nos diversos setores de nossa comunidade.</p>
<p>Sempre conectado às inovações do mercado e atento às novas tendências em tecnologia, o núcleo de<strong> TI do Senac Uruguaiana</strong>, ministrará palestras sobre os temas: Linux, Servidores, Segurança, Desenvolvimento de Aplicações Web e Móvel.</p>
<p>Esta edição contará com a presença de profissionais de destaque no mercado da Tecnologia da Informação, com ampla experiência na utilização de Software Livre em ambientes corporativos, educacionais e domésticos.</p>
<p>O evento será realizado no auditório do Colégio Marista Sant’Ana. As inscrições podem ser realizadas através do <a href="http://www.uruguaianatech.info/inscricaos/">site</a> ou na unidade do Senac, mediante a colaboração com um alimento não-perecível. Aos interessados na emissão do certificado, o investimento será de R$10,00.</p>
<p>Vejam abaixo a programação do evento. Destaque para o 1º e 2º dia onde os editores deste blog, <strong>Thiago Finardi</strong> e <strong>Rodrigo Aramburu</strong>, ministrarão palestras no evento.</p>
<p><img class="aligncenter size-full wp-image-782" title="Cartaz_RGB_peq" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cartaz_RGB_peq.png" alt="Cartaz_RGB_peq" width="454" height="642" /></p>
<p>Vamos lá pessoal, participem e ajudem no crescimento da área de TI em nossa cidade.</p>
<h1>
<p style="text-align: center;"><a href="http://www.uruguaianatech.info" target="_blank"><strong>http://www.uruguaianatech.info</strong></a></p>
</h1>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="2º UruguaianaTech" title="2º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">2º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark"><img width="50" height="33" src="http://www.botecodigital.info/wp-content/uploads/2011/11/uruguaianaTECH_.jpg" class="crp_thumb wp-post-image" alt="UruguaianaTECH – Capacitando profissionais" title="UruguaianaTECH – Capacitando profissionais" /></a> <a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark" class="crp_title">UruguaianaTECH – Capacitando profissionais</a></li><li><a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/08/tchelinux-150x150.png" class="crp_thumb wp-post-image" alt="TchêLinux Uruguaiana" title="TchêLinux Uruguaiana" /></a> <a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark" class="crp_title">TchêLinux Uruguaiana</a></li><li><a href="http://www.botecodigital.info/php/uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/urutech1.png" class="crp_thumb wp-post-image" alt="UruguaianaTech" title="UruguaianaTech" /></a> <a href="http://www.botecodigital.info/php/uruguaianatech/" rel="bookmark" class="crp_title">UruguaianaTech</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Listando arquivos de um diretório em PHP</title>
		<link>http://www.botecodigital.info/php/listando-arquivos-de-um-diretorio-em-php/</link>
		<comments>http://www.botecodigital.info/php/listando-arquivos-de-um-diretorio-em-php/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 23:50:23 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[diretorio]]></category>
		<category><![CDATA[galeria]]></category>

		<guid isPermaLink="false">http://botecodigital.g8si.com/?p=519</guid>
		<description><![CDATA[Mostrei no meu último artigo como criar uma galeria de fotos utilizando JQuery e o plugin PrettyPhoto, mas ele tinha um problema, ou melhor uma dificuldade, para adicionar uma nova foto tínhamos que abrir o arquivo e acrescentar o código HTML para a nova foto. Para não termos esse tipo e trabalho que inventaram a informática . Vamos ver então um simples script que lê um determinado diretório e monta a tag HTML para a imagem: Na linha 1 definimos [...]]]></description>
			<content:encoded><![CDATA[<p>Mostrei no meu último artigo como criar uma galeria de  <a href="http://www.botecodigital.info/web/construindo-uma-galeria-de-fotos-com-o-plugin-prettyphoto-do-jquery">fotos utilizando JQuery e o plugin PrettyPhoto</a>, mas ele tinha um problema, ou melhor uma dificuldade, para adicionar uma nova foto tínhamos que abrir o arquivo e acrescentar o código HTML para a nova foto. Para não termos esse tipo e trabalho que inventaram a informática <img src='http://www.botecodigital.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Vamos ver então um simples <em>script</em> que lê um determinado diretório e monta a tag HTML para a imagem:</p>
<pre class="brush: php; title: ; notranslate">
$dir = &quot;fotos&quot;;
$d = opendir($dir);
$i = 0;

$nome = readdir($d);
while( $nome != false ){
	if( !is_dir($nome) and ($nome != 'Thumbs.db') ){
		$arquivos[$i] = $nome;
                $i++;
	}
	$nome = readdir($d);
}
sort($arquivos);

foreach($arquivos as $arq){
	echo '&lt;img src=&quot;',$dir, &quot; alt=&quot;&quot; /&gt; ';
}
</pre>
<p>Na linha 1 definimos o diretório que será lido e armazenamos em uma variável para facilitar a manutenção do código, na linha 2 abrimos um manipulador de diretório com a função <a href="http://br2.php.net/manual/pt_BR/function.opendir.php" target="_blank">opendir()</a> que nos retorna um ponteiro para ser utilizado em funções posteriores.</p>
<p>Bom agora podemos percorrer o diretório, mas antes vamos iniciar um contador (linha 3) para podermos armazenar em um <em>array</em> os nomes dos arquivos para poder entre outras coisas ordená-los.</p>
<p>Na linha 5 começamos a ler os arquivos e fazemos isso utilizando a função <a href="http://br2.php.net/manual/pt_BR/function.readdir.php" target="_blank">readdir()</a> que retorna o nome do próximo arquivo do diretório aberto com a função <em>opendir</em>. Na linha 6 entramos em um laço que executa enquanto o nome do arquivo retornado pela função <em>readdir()</em> não for falso, ou seja não tenha listado todos os arquivos do diretório.</p>
<p>Dentro do laço (linha 7) fazemos um teste, se o nome retornado não for um diretório ( com a função <a href="http://br2.php.net/manual/pt_BR/function.is-dir.php" target="_blank">is_dir()</a>) e se o nome for diferente de &#8220;Thumbs.db&#8221;, aqueles arquivos chatos e miniaturas do windows que as vezes <em>upamos</em> sem querer <img src='http://www.botecodigital.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Na linha 8 armazenamos o nome do arquivo no <em>array</em> e na linha 9 incrementamos nosso contador. fora do <em>if</em> lemos o próximo arquivo do diretório para o teste do <em>while</em>.</p>
<p>Na linha 13 utilizamos a função <a href="http://br2.php.net/manual/pt_BR/function.sort.php" target="_blank">sort()</a> para ordenar nosso <em>array</em> onde estão armazenados os nomes das imagens. Isto é muito útil principalmente se os nomes dos arquivos sejam seqüênciais e correspondem também a uma miniatura em outro diretório <strong>como é o mais indicado caso queiram utilizar esse script para criar uma galeria com o PrettyPhoto</strong>.</p>
<p>Agora basta juntar os nomes do arquivos do <em>array</em> com as tags para exibir as fotos como é feito na linha 16, utilizando um <em>foreach</em> para percorrer  <em>array</em>.</p>
<p>Este <em>script</em> facilita bastante a vida principalmente se s galerias criadas forem grandes ou precisar adicionar fotos frequentemente, espero que tenham gostado quem <a href="http://www.botecodigital.info/wp-content/donwloads/listar_direotorios.zip">quiser baixar o exemplo clique aqui</a>.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/php/redimensionando-imagens-com-php/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Redimensionando imagens com PHP" title="Redimensionando imagens com PHP" /></a> <a href="http://www.botecodigital.info/php/redimensionando-imagens-com-php/" rel="bookmark" class="crp_title">Redimensionando imagens com PHP</a></li><li><a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-2/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Exemplo de autenticação em PHP utilizando sessão- Parte 2" title="Exemplo de autenticação em PHP utilizando sessão- Parte 2" /></a> <a href="http://www.botecodigital.info/php/exemplo-de-autenticacao-parte-2/" rel="bookmark" class="crp_title">Exemplo de autenticação em PHP utilizando sessão- Parte 2</a></li><li><a href="http://www.botecodigital.info/web/construindo-uma-galeria-de-fotos-com-o-plugin-prettyphoto-do-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery" title="Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery" /></a> <a href="http://www.botecodigital.info/web/construindo-uma-galeria-de-fotos-com-o-plugin-prettyphoto-do-jquery/" rel="bookmark" class="crp_title">Construindo uma Galeria de Fotos com o plugin PrettyPhoto do JQuery</a></li><li><a href="http://www.botecodigital.info/php/protegendo-arquivos-de-download-com-login/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Protegendo arquivos de download com login" title="Protegendo arquivos de download com login" /></a> <a href="http://www.botecodigital.info/php/protegendo-arquivos-de-download-com-login/" rel="bookmark" class="crp_title">Protegendo arquivos de download com login</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/listando-arquivos-de-um-diretorio-em-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Youtube deixará de suportar IE6</title>
		<link>http://www.botecodigital.info/web/youtube-deixara-de-suportar-ie6/</link>
		<comments>http://www.botecodigital.info/web/youtube-deixara-de-suportar-ie6/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 12:57:59 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://botecodigital.g8si.com/?p=493</guid>
		<description><![CDATA[Já sem tempo o Youtube decidiu não gastar o tempo de seus desenvolvedores corrigindo erros causados pelo Internet Explore 6, um browse antigo com muitos problemas e que é responsável por muitas das dores de cabeça dos desenvolvedores web. O Youtube está recomendando que seus usuario troquem de navegador para o Internet Explore 8(ultima versão) Firefox 3.5 ou Google Chrome. Mais um grande passo para a campanha Internet Explorer 6.0, nunca mais!. Posts Relacionados: Microsoft alerta para séria falha de [...]]]></description>
			<content:encoded><![CDATA[<p>Já sem tempo o Youtube decidiu não gastar o tempo de seus desenvolvedores corrigindo  erros causados pelo <strong>Internet Explore 6</strong>, um browse antigo com muitos problemas  e  que é responsável por muitas das dores de cabeça dos desenvolvedores web.</p>
<p> O Youtube está recomendando que seus usuario  troquem de navegador para o <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx" target="_blank">Internet Explore 8</a>(ultima versão)  <a href="http://br.mozdev.org/firefox/download.html" target="_blank">Firefox 3.5</a> ou <a href="http://www.google.com/chrome">Google Chrome</a>.</p>
<div style="text-align:center;margin:10px 0;">
<a href="http://www.botecodigital.info/wp-content/uploads/2009/07/ie6-youtube1.jpg" target="_blank" class="cboxModal" rel="lightbox[493]" title="ie6-youtube"><br />
<img src="http://www.botecodigital.info/wp-content/uploads/2009/07/ie6-youtube1.jpg" alt="ie6-youtube" title="ie6-youtube" width="450" height="205" class="aligncenter size-full wp-image-499" /><br />
</a>
</div>
<p> Mais um grande passo para a campanha  <a href="http://www.tossulino.com/tecnologia/internet-explorer-6-nunca-mais/" target="_blank">Internet Explorer 6.0, nunca mais!</a>.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/noticias/falha-seguranca-ie/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/09/navegadores.png" class="crp_thumb wp-post-image" alt="Microsoft alerta para séria falha de segurança no Internet Explorer" title="Microsoft alerta para séria falha de segurança no Internet Explorer" /></a> <a href="http://www.botecodigital.info/noticias/falha-seguranca-ie/" rel="bookmark" class="crp_title">Microsoft alerta para séria falha de segurança no Internet Explorer</a></li><li><a href="http://www.botecodigital.info/noticias/lancado-firefox-3-5/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/09/navegadores.png" class="crp_thumb wp-post-image" alt="Lançado Firefox 3.5" title="Lançado Firefox 3.5" /></a> <a href="http://www.botecodigital.info/noticias/lancado-firefox-3-5/" rel="bookmark" class="crp_title">Lançado Firefox 3.5</a></li><li><a href="http://www.botecodigital.info/navegadores/extensoes-essenciais-para-firefox/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/09/navegadores.png" class="crp_thumb wp-post-image" alt="Extensões do Firefox essenciais para um desenvolvedores web" title="Extensões do Firefox essenciais para um desenvolvedores web" /></a> <a href="http://www.botecodigital.info/navegadores/extensoes-essenciais-para-firefox/" rel="bookmark" class="crp_title">Extensões do Firefox essenciais para um desenvolvedores web</a></li><li><a href="http://www.botecodigital.info/css/video-tutorial-criar-menu-horizontal/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/video2.png" class="crp_thumb wp-post-image" alt="Vídeo-Tutorial &#8211; Criar Menu Horizontal" title="Vídeo-Tutorial &#8211; Criar Menu Horizontal" /></a> <a href="http://www.botecodigital.info/css/video-tutorial-criar-menu-horizontal/" rel="bookmark" class="crp_title">Vídeo-Tutorial &#8211; Criar Menu Horizontal</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/web/youtube-deixara-de-suportar-ie6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

