<?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>Geração Beta</title>
	<atom:link href="http://www.geracaobeta.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geracaobeta.com</link>
	<description>A vida seria mais simples se tivessemos o código fonte</description>
	<lastBuildDate>Fri, 20 May 2011 11:56:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apresentação Upload de Imagem com PHP</title>
		<link>http://www.geracaobeta.com/2011/05/apresentacao-upload-de-imagem-com-php/</link>
		<comments>http://www.geracaobeta.com/2011/05/apresentacao-upload-de-imagem-com-php/#comments</comments>
		<pubDate>Fri, 20 May 2011 11:25:26 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[Apresentações]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=470</guid>
		<description><![CDATA[<iframe width=100% height=470px frameborder=0 src=https://docs.google.com/viewer?a=v&#038;pid=explorer&#038;chrome=false&#038;embedded=true&#038;srcid=0B1tUU9GioRXDNjNjNjgwMmQtMTNkYS00M2E0LTkwYTMtM2MwY2JhY2QyYzI1&#038;hl=en_US></iframe>


No related posts.]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&#038;p2=1&#038;p3=SD390BD8785CA239E6!197&#038;p4=" width="402" height="327" frameborder="0" scrolling="no"></iframe></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2011/05/apresentacao-upload-de-imagem-com-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício Comunicado</title>
		<link>http://www.geracaobeta.com/2011/02/exercicio-comunicado/</link>
		<comments>http://www.geracaobeta.com/2011/02/exercicio-comunicado/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 17:14:00 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/2011/02/exercicio-comunicado/</guid>
		<description><![CDATA[Comunicar ao seu chefe que você entrará em greve devido a ausência de café na máquina de cafezinho (sem ser demitido).
Comunicar ao professor que o cachorro comeu seu pen drive (onde estava o seu comunicado) de uma forma que ele não lhe deixe em recuperação na disciplina
Comunicar algo para fazer com que todos deixem o recinto imediatamente
Comunicar aos funcionários que eles não receberão salário e ainda deixá-los felizes
Comunicar ao seu colega trabalho que ele está cheirando mal sem deixá-lo constrangido
Comunicar ao seu chefe que apesar de ter sido visto em um bloco de carnaval o motivo da sua falta foi porque sua avó morreu.


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Comunicar ao seu chefe que você entrará em greve devido a ausência de café na máquina de cafezinho (sem ser demitido).<br />
Comunicar ao professor que o cachorro comeu seu pen drive (onde estava o seu comunicado) de uma forma que ele não lhe deixe em recuperação na disciplina<br />
Comunicar algo para fazer com que todos deixem o recinto imediatamente<br />
Comunicar aos funcionários que eles não receberão salário e ainda deixá-los felizes<br />
Comunicar ao seu colega trabalho que ele está cheirando mal sem deixá-lo constrangido<br />
Comunicar ao seu chefe que apesar de ter sido visto em um bloco de carnaval o motivo da sua falta foi porque sua avó morreu.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2011/02/exercicio-comunicado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício de Algoritmo 1</title>
		<link>http://www.geracaobeta.com/2010/05/exercicio-de-algoritmo-1/</link>
		<comments>http://www.geracaobeta.com/2010/05/exercicio-de-algoritmo-1/#comments</comments>
		<pubDate>Thu, 20 May 2010 13:46:59 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[Algoritmo]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=465</guid>
		<description><![CDATA[Situação você está fazendo um sistema para geração de tabelas de jogos em um campeonato esportivo. O usuário irá cadastrar as equipes e informar as datas e você se encarregará de construir a seqüência de jogos.

Desenvolver um algoritmo que calcule o número de jogos necessários a serem realizados de acordo com o número de equipes, lembrando que cada equipe deverá jogar com as demais apenas uma vez. Ou seja, no caso de existir três equipes cadastradas teremos 3 jogos (equipe1 x equipe2 &#124; equipe2 X equipe3 &#124; equipe1 x equipe3) para que todas as equipes se enfrentem uma única vez.

Para organizar a resposta deve ser uma função que recebe como parâmetro um número inteiro que representa a quantidade de equipes cadastradas e retorna outro número inteiro que representa o número de jogos necessários.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Situação: você está fazendo um sistema para geração de tabelas de jogos em um campeonato esportivo. O usuário irá cadastrar as equipes e informar as datas e você se encarregará de construir a seqüência de jogos.</p>
<p>Desenvolver um algoritmo que calcule o número de jogos necessários a serem realizados de acordo com o número de equipes, lembrando que cada equipe deverá jogar com as demais apenas uma vez. Ou seja, no caso de existir três equipes cadastradas teremos 3 jogos (equipe1 x equipe2 | equipe2 X equipe3 | equipe1 x equipe3) para que todas as equipes se enfrentem uma única vez.</p>
<p>Para organizar a resposta deve ser uma função que recebe como parâmetro um número inteiro que representa a quantidade de equipes cadastradas e retorna outro número inteiro que representa o número de jogos necessários.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/05/exercicio-de-algoritmo-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Limpar aquivo .txt com php</title>
		<link>http://www.geracaobeta.com/2010/05/limpar-aquivo-txt-com-php-2/</link>
		<comments>http://www.geracaobeta.com/2010/05/limpar-aquivo-txt-com-php-2/#comments</comments>
		<pubDate>Wed, 05 May 2010 14:22:06 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=462</guid>
		<description><![CDATA[Limpar um arquivo txt é algo realmente simples, para isso só devemos ficar atentos para qual modo de abertura utilizaremos para acessar o arquivo por meio da função fopen() do php. Se o utilizarmos o modo “w” ou “w+”, logo após abrirmos o arquivo o mesmo terá seu tamanho reduzido a 0 (zero) sendo portanto, completamente limpo. Vale lembrar que se antes de fechar o arquivo se você escrever algo nele, esse passará a ser o novo conteúdo do arquivo. Vamos ao exemplo:

<pre class="brush:php">
function gravarDado($arquivo, $mensagem, $sobrescrever='w+'){
	$fp = fopen($arquivo, $sobrescrever);
	$escreve = fwrite($fp, $mensagem);
	fclose($fp);	
}
</pre>

A função acima irá sobrescrever os dados presentes em determinado arquivo, caso você não informe outro método de acesso como terceiro parâmetro da função.


Você também vai gostar de ler:<ul><li><a href='http://www.geracaobeta.com/2010/01/limpar-aquivo-txt-com-php/' rel='bookmark' title='Permanent Link: Limpar aquivo .txt com php'>Limpar aquivo .txt com php</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Limpar um arquivo txt é algo realmente simples, para isso só devemos ficar atentos para qual modo de abertura utilizaremos para acessar o arquivo por meio da função <a title="Descrição da função fopen()" href="http://php.net/manual/en/function.fopen.php" target="_blank">fopen()</a> do php. Se o utilizarmos o modo “w” ou “w+”, logo após abrirmos o arquivo o mesmo terá seu tamanho reduzido a 0 (zero) sendo portanto, completamente limpo. Vale lembrar que se antes de fechar o arquivo se você escrever algo nele, esse passará a ser o novo conteúdo do arquivo. Vamos ao exemplo:</p>
<pre class="brush:php">function gravarDado($arquivo, $mensagem, $sobrescrever='w+'){
	$fp = fopen($arquivo, $sobrescrever);
	$escreve = fwrite($fp, $mensagem);
	fclose($fp);
}</pre>
<p>A função acima irá sobrescrever os dados presentes em determinado arquivo, caso você não informe outro método de acesso como terceiro parâmetro da função.</p>


<p>Você também vai gostar de ler:<ul><li><a href='http://www.geracaobeta.com/2010/01/limpar-aquivo-txt-com-php/' rel='bookmark' title='Permanent Link: Limpar aquivo .txt com php'>Limpar aquivo .txt com php</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/05/limpar-aquivo-txt-com-php-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Liberar acesso ao phpmyadmin em rede local</title>
		<link>http://www.geracaobeta.com/2010/03/liberar-acesso-ao-phpmyadmin-em-rede-local/</link>
		<comments>http://www.geracaobeta.com/2010/03/liberar-acesso-ao-phpmyadmin-em-rede-local/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:48:14 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[banco]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[wamp]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=439</guid>
		<description><![CDATA[Quando se trabalha em conjunto fica difícil que cada componente da equipe trabalhe localmente em razão da duplicidade e atualização dos dados. Por isso é necessário que se compartilhe arquivos e também o banco de dados. Para quem estiver usando o phpmyadmin aqui vai um dica para liberar o acesso a outros ips da mesma rede.

Para deixar que outros IP’s acessem seu banco basta adicioná-los na lista de permissão no arquivo phpmyadmin.conf que se encontra dentro da pasta alias no próprio diretório do wamp. O caminho para chegar no arquivo será algo como C:\wamp\alias lá você irá encontrar o  phpmyadmin.conf. Para mais detalhes:


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Quando se trabalha em conjunto fica difícil que cada componente da equipe trabalhe localmente em razão da duplicidade e atualização dos dados. Por isso é necessário que se compartilhe arquivos e também o banco de dados. Para quem estiver usando o phpmyadmin aqui vai um dica para liberar o acesso a outros ips da mesma rede.</p>
<p>Para deixar que outros IP’s acessem seu banco basta adicioná-los na lista de permissão no arquivo phpmyadmin.conf que se encontra dentro da pasta alias no próprio diretório do wamp. O caminho para chegar no arquivo será algo como C:\wamp\alias lá você irá encontrar o  phpmyadmin.conf. Dentro do arquivo você encontrará o seguinte:</p>
<blockquote><p>Alias /phpmyadmin &#8220;c:/wamp/apps/phpmyadmin3.1.1/&#8221;</p>
<p># to give access to phpmyadmin from outside<br />
# replace the lines<br />
#<br />
#        Order Deny,Allow<br />
#             Deny from all<br />
#            Allow from 127.0.0.1<br />
#<br />
# by<br />
#<br />
#        Order Allow,Deny<br />
#   Allow from all<br />
#<br />
&lt;Directory &#8220;c:/wamp/apps/phpmyadmin3.1.1/&#8221;&gt;<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride all<br />
Order Deny,Allow<br />
Deny from all<br />
<span style="color: #0000ff;"><strong>Allow from 127.0.0.1</strong></span> (para permitir outro ip coloque abaixo: Allow from ip_em_questao)<br />
&lt;/Directory&gt;</p></blockquote>
<p>Primeiramente no arquivo, existe uma parte com comentários que explicam como permitir o acesso a todos, mas você também pode dar permissão a ip’s inserindo-os na lista no mesmo modelo da permissão local: Allow from ip.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/03/liberar-acesso-ao-phpmyadmin-em-rede-local/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperando dados de um checkbox como array</title>
		<link>http://www.geracaobeta.com/2010/01/recuperando-dados-de-um-checkbox-como-array/</link>
		<comments>http://www.geracaobeta.com/2010/01/recuperando-dados-de-um-checkbox-como-array/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 12:59:11 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Formulário]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=421</guid>
		<description><![CDATA[O checkbox é o tipo de campo utilizado quando o usuário poderá escolher mais de uma opção, casos onde ele poderá marcar que se interessa pelas áreas de robótica, aplicativos móbile e dispositivos de armazenamento.  Vez por outra ainda me confundo quando estou recuperando os dados de checkbox, pra quem está com essa dúvida vai à dica: Para pegar os dados enviados por checkbox como array em php basta inserimos os colchetes no name do input no HTML:
<pre class="brush:php">
<form method="post" action="?btn=ok">
    <fieldset>
        <legend>Áreas de interesse:</legend>
        <label>
        <input type="checkbox" name="id_area[]" value="1" />Robótica
        </label>
        <label>
        <input type="checkbox" name="id_area[]" value="2" />Sistemas
        </label>
        <label>
        <input type="checkbox" name="id_area[]" value="3" />Linguagens
        </label>
        <label>
        <input type="checkbox" name="id_area[]" value="4" />I.A.
        </label>
        <label>
        <input type="checkbox" name="id_area[]" value="4" />Jogos
        </label>
    </fieldset>
    <input type="submit" value="enviar" />
</form>
</pre>

Para capturar as áreas marcadas pelo usuário basta fazer o seguinte:

<pre class='brush:php'>
$areas = isset($_POST['id_area']) ? $_POST['id_area'] : NULL;
echo $areas; //Array
foreach($areas as $id_area){
	echo $id_area;//imprimir id de áreas
}
</pre>

Simples assim!


No related posts.]]></description>
			<content:encoded><![CDATA[<p>O checkbox é o tipo de campo utilizado quando o usuário poderá escolher mais de uma opção, casos onde ele poderá marcar que se interessa pelas áreas de robótica, aplicativos móbile e dispositivos de armazenamento.  Vez por outra ainda me confundo quando estou recuperando os dados de checkbox, pra quem está com essa dúvida vai à dica: Para pegar os dados enviados por checkbox como array em php basta inserimos os colchetes no name do input no HTML:</p>
<pre class="brush:php">
<form method="post" action="?btn=ok">
    <fieldset>
        <legend>Áreas de interesse:</legend>
        <label>
<input type="checkbox" name="id_area[]" value="1" />Robótica
        </label>
        <label>
<input type="checkbox" name="id_area[]" value="2" />Sistemas
        </label>
        <label>
<input type="checkbox" name="id_area[]" value="3" />Linguagens
        </label>
        <label>
<input type="checkbox" name="id_area[]" value="4" />I.A.
        </label>
        <label>
<input type="checkbox" name="id_area[]" value="4" />Jogos
        </label>
    </fieldset>
<input type="submit" value="enviar" />
</form>
</pre>
<p>Para capturar as áreas marcadas pelo usuário basta fazer o seguinte:</p>
<pre class='brush:php'>
$areas = isset($_POST['id_area']) ? $_POST['id_area'] : NULL;
echo $areas; //Array
foreach($areas as $id_area){
	echo $id_area;//imprimir id de áreas
}
</pre>
<p>Simples assim!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/01/recuperando-dados-de-um-checkbox-como-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analisando expressões em Javascript</title>
		<link>http://www.geracaobeta.com/2010/01/analisando-expressoes-em-javascript/</link>
		<comments>http://www.geracaobeta.com/2010/01/analisando-expressoes-em-javascript/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 21:32:03 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[expressoes]]></category>
		<category><![CDATA[typeof]]></category>
		<category><![CDATA[undefined]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=415</guid>
		<description><![CDATA[Vez por outra acabo em dúvida de qual o valor boleano corresponde a determinada expressão em javascript. Para aqueles que possuem dúvidas similares, abaixo relaciono como alguns valores são tratados quando colocados como expressões condicionais:

O condicional retornará <strong>verdadeiro (TRUE)</strong> nos seguintes casos:
<ul>
	<li>A string tem um ou mais caracteres</li>
	<li>Número diferente de zero</li>
	<li>Valor não nulo</li>
	<li>Objeto Referenciado existe</li>
	<li>A propriedade do objeto é definida e avaliada como uma string de um ou mais caracteres ou um número diferente de zero</li>
</ul>
O condicional retornará <strong>falso (FALSE) </strong>nos seguintes casos:
<ul>
	<li>String vazia</li>
	<li>Algarismo 0</li>
	<li>Null</li>
	<li>Objeto referenciado não existe</li>
	<li>A propriedade do objeto é indefinida ou seu valor é uma string vazio ou zero.</li>
</ul>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Vez por outra acabo em dúvida de qual o valor boleano corresponde a determinada expressão em javascript. Para aqueles que possuem dúvidas similares, abaixo relaciono como alguns valores são tratados quando colocados como expressões condicionais:</p>
<p>O condicional retornará <strong>verdadeiro (TRUE)</strong> nos seguintes casos:</p>
<ul>
<li>A string tem um ou mais caracteres</li>
<li>Número diferente de zero</li>
<li>Valor não nulo</li>
<li>Objeto Referenciado existe</li>
<li>A propriedade do objeto é definida e avaliada como uma string de um ou mais caracteres ou um número diferente de zero</li>
</ul>
<p>O condicional retornará <strong>falso (FALSE) </strong>nos seguintes casos:</p>
<ul>
<li>String vazia</li>
<li>Algarismo 0</li>
<li>Null</li>
<li>Objeto referenciado não existe</li>
<li>A propriedade do objeto é indefinida ou seu valor é uma string vazio ou zero.</li>
</ul>
<p>Para ter mais segurança ao <strong>analisar a existência de determinada propriedade</strong> você pode fazer uso do operador <a title="Exemplos do uso do operador typeof" href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator">typeof</a>. Você pode testá-lo em comparação com a constante undefined:</p>
<pre class="brush:javascript">If(typeof objeto.propriedade != “undefined”){
     //código a ser executado
}</pre>
<p>Vale lembrar que, se há chance de quem nem o objeto nem a propriedade existam você precisa agrupar as expressões condicionais que testam a existência de ambos. Faça isso testando primeiro a existência do objeto e, depois, a da propriedade. Se o objeto não existir a segunda parte da expressão não é testada:</p>
<pre class="brush:javascript">if(obejto &amp;&amp; typeof objeto.propriedade != “undefined” ){
     //código a ser executado
}</pre>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/01/analisando-expressoes-em-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simples Tooltip com CSS</title>
		<link>http://www.geracaobeta.com/2010/01/simples-tooltip-com-css/</link>
		<comments>http://www.geracaobeta.com/2010/01/simples-tooltip-com-css/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 20:57:25 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[tooltip]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=408</guid>
		<description><![CDATA[Tooltip é o nome que se dá aquelas legendas que aparecem quando você passa o mouse em cima de um link, a diferença entre elas (na minha opinião...) e a legenda gerada pelo link através da propriedade title é que as tooltip’s são estilizadas. Se você precisar utilizar a legenda pra auxiliar o usuário e quiser deixá-la consoante com seu layout, isso vai ser um pouco complicado de se fazer com a propriedade title. Nesse caso, o css pode nos dar uma ajuda, visto que conseguir construir nossa tooltip será demasiadamente simples.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a title="Tooltip segundo a wikipedia" href="http://en.wikipedia.org/wiki/Tooltip">Tooltip</a> é o nome que se dá aquelas legendas que aparecem quando você passa o mouse em cima de um link, a diferença entre elas (na minha opinião&#8230;) e a legenda gerada pelo link através da propriedade title é que as tooltip’s são estilizadas. Se você precisar utilizar a legenda pra auxiliar o usuário e quiser deixá-la consoante com seu layout, isso vai ser um pouco complicado de se fazer com a propriedade title. Nesse caso, o css pode nos dar uma ajuda, visto que conseguir construir nossa tooltip será demasiadamente simples.</p>
<p>Basta ao construirmos nosso link colocarmos nossa legenda dentro dele, demarcada por uma tag <a title="Tag span sengundo W3schools" href="http://www.w3schools.com/TAGS/tag_span.asp">span</a>, dessa forma:</p>
<pre class="brush:html"><a href="javascript:;">Passe o Mouse <span>Exemplo de Tooltip</span></a>
<a href="javascript:;">Passe o Mouse <span>Exemplo de Tooltip 2</span></a></pre>
<p>Depois de construir nossa legenda vamos adequar sua visualização via css, primeiramente deixamos os spans que estiverem dentro de links com a propriedade <a title="Tutorial propriedade display" href="http://maujor.com/tutorial/propriedade-css-display.php">display</a>=none, o que fara com que eles desaparceçam. Depois basta desclararmos que quando o usuário passar o mouse em cima do link (<a title="Texto sobre pseudo-classe - Tableless" href="http://www.tableless.com.br/pseudo-classes-css">pseudo-classe</a> :hover) os span receberão display:block, tornando-se visivéis para o usuário. A partir daí podemos setar o posicionamento como absoluto e começar a personalizá-los, como mostra o CSS abaixo:</p>
<pre class="brush:css">a span{
	display:none;
	font-size:0.9em;
}
a:hover{
	z-index:20;
	position:relative;
}
a:hover span{
	display:block;
	position:absolute;
	background:#d9e3e8;
	border:solid #00354d 1px;
	color:#00354d;
	padding:0 2px;
	z-index:22;
	text-align:center;
}</pre>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/01/simples-tooltip-com-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chat free do Geração Beta, utilizando AJAX</title>
		<link>http://www.geracaobeta.com/2010/01/chat-free-do-geracao-beta-utilizando-ajax/</link>
		<comments>http://www.geracaobeta.com/2010/01/chat-free-do-geracao-beta-utilizando-ajax/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:03:44 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[download]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=396</guid>
		<description><![CDATA[Apesar de existirem inúmeros chats free por aí quando necessitei implementar um, me deparei com uma tarefa extremamente difícil: compreender o código alheio ao ponto de conseguir adequar o chat para meus propósitos. Outro porém, foi que muitas implementações vinham que funcionalidades que nunca usaria e portanto só ocupariam espaço no meu servidor.

Diante disso tomei vergonha e parei um tempo pra estudar AJAX (o que já vinha adiando fazia tempo!) e pensar como faria o chat, em praticamente uma semana o chat já estava relativamente pronto! Ainda estou mexendo nele e modificando algumas coisas por isso que ele está em fase beta. Sei que ainda dá pra otimizar o código, por isso sugestões e críticas serão bem vindas. Quem quiser dá uma olhada como ficou é só baixar, tá liberado!!

<a href="http://www.geracaobeta.com/wp-content/uploads/2010/01/gbchatv1.0.rar">Download Chat Geração Beta Versão 1.0 - Beta</a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Apesar de existirem inúmeros chats free por aí quando necessitei implementar um, me deparei com uma tarefa extremamente difícil: compreender o código alheio ao ponto de conseguir adequar o chat para meus propósitos. Outro porém, foi que muitas implementações vinham que funcionalidades que nunca usaria e portanto só ocupariam espaço no meu servidor.</p>
<p>Diante disso tomei vergonha e parei um tempo pra estudar AJAX (o que já vinha adiando fazia tempo!) e pensar como faria o chat, em praticamente uma semana o chat já estava relativamente pronto! Ainda estou mexendo nele e modificando algumas coisas por isso que ele está em fase beta. Sei que ainda dá pra otimizar o código, por isso sugestões e críticas serão bem vindas. Quem quiser dá uma olhada como ficou é só baixar, tá liberado!!</p>
<p><a href="../wp-content/uploads/2010/01/gbchatv1.0.rar">Download Chat Geração Beta Versão 1.0 &#8211; Beta</a></p>
<p>Caracaterísticas do <strong>Geração Beta Chat Versão 1.0 Beta</strong>:</p>
<ul>
<li>O gbChat não utiliza banco de dados, todas as mensagens são armazenas no arquivo chat.txt que se encontra no diretório chat.</li>
<li>Os usuário que estão online se são armazenados no arquivo online.txt.</li>
<li>Em caso de<strong> mensagem privada</strong>, a conversa é armazena em arquivo no diretório chat/PM, o nome deste arquivo é composto pelo Nick da pessoa que iniciou a conversa + o separador _com_ + o Nick da pessoa com a qual deseja conversar.</li>
<li>Se alguém acessar o chat e a última mensagem estiver sido escrita a mais de 1h atrás, a conversa é automaticamente limpa. E as mensagens são armazenadas no diretório chat/ backup tendo como nome do arquivo a data da última mensagem. Tal mecanismo também funciona para as mensagens privadas, a diferença é que elas são armazenadas no diretório chat/backup/pm e junto com a data o Nick das duas pessoas envolvidas na conversa também.</li>
<li>O <strong>tempo de atualização</strong> do chat (TEMPO), e do tempo decorrido desde a última conversa para que o chat seja limpo e o backup efetuado (TEMPO_CHAT) estão como constantes definidas no início do arquivo funções.php.</li>
<li>O Nick do usuário é armazenado na sessão “nome_chat”, que se encontra referenciada pela constante USUARIO, para alterar o nome da sessão que armazena o Nick do usuário basta alterar o valor da constante USUARIO.</li>
<li>O chat encontra-se com <strong>codificação ISSO-8859-1</strong>, em breve o postarei na versão UTF-8.</li>
<li>Todas as funções encontram-se no arquivo funcoes.php, devidamente comentadas de forma a descrever seu propósito.</li>
<li>A página users_online.php mostra apenas os usuários que estão online no momento, sem carregar a parte do chat em si. Ela também permite enviar e receber mensagens privadas de qualquer usuário online.</li>
<li>O chat pode ser utilizado chamando pelo arquivo chat.php, tanto pode ser o que está dentro do diretório chat ou mesmo pelo que se encontra fora do diretório. Quando escolher qual utilizar poderá deletar o outro sem problema.</li>
<li>Existem dois arquivos para <strong>mostrar os usuários online</strong> (user_online.php) um dentro do diretório chat e um fora, caso precise apenas de um você poderá deletar o outro e caso não precise de nenhum dos dois também pode deletá-los que isso não irá influenciar no chat em si.</li>
</ul>
<p><strong>Faça o download do chat</strong> clicando no link ao lado: <a href="http://www.geracaobeta.com/wp-content/uploads/2010/01/gbchatv1.0.rar">Download Chat Geração Beta Versão 1.0 &#8211; Beta</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/01/chat-free-do-geracao-beta-utilizando-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alterando o tamanho da fonte com Javascript</title>
		<link>http://www.geracaobeta.com/2010/01/alterando-o-tamanho-da-fonte-com-javascript/</link>
		<comments>http://www.geracaobeta.com/2010/01/alterando-o-tamanho-da-fonte-com-javascript/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 13:39:10 +0000</pubDate>
		<dc:creator>Kennedy Ferreira</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[fonte]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.geracaobeta.com/?p=386</guid>
		<description><![CDATA[Deixar que o usuário adéque o tamanho da fonte para que consiga uma maior legibilidade do conteúdo é uma funcionalidade que podemos encontrar em diversos sites. Desponibilizar tal recurso é de fato bastante simples, para sua construção necessitaremos apenas de uma única função em javascript. Devo lembrar que neste caso o tamanho da fonte nos elementos da página devem estar definidos em unidades relativas para sofrerem a alteração cada vez que modificarmos o tamanho da fonte do body! Vamos a nossa primeira função...


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Deixar que o usuário<strong> adéque o tamanho da fonte</strong> para que consiga uma<strong> maior legibilidade</strong> do conteúdo é uma funcionalidade que podemos encontrar em diversos sites. Desponibilizar tal recurso é de fato bastante simples, para sua construção necessitaremos apenas de <strong>uma única função em javascript</strong>. Devo lembrar que neste caso o <strong>tamanho da fonte nos elementos da página</strong> devem estar definidos em <strong>unidades relativas</strong> para sofrerem a alteração cada vez que modificarmos o tamanho da fonte do body!</p>
<p>Vamos a nossa primeira função:</p>
<pre class="brush:javascript">function fonte(par){
	//recupera o tamanho do fonte no browser
	tamanho = document.body.style.fontSize;
	//Se o tamanho da fonte não houver registro de tamanho, sete ele como 10
	if(!tamanho){
		alert(tamanho);
		tamanho = 10;
		alert(tamanho);
	}else{
		//Mas se ele exitir recupere o valor pra mim
		tamanho = parseInt(tamanho.substring(0,2));
	}
	//Se for pra aumentar e o tamanho ainda não passou de 15
	if(par == 'aumentar' &amp;&amp; tamanho &lt; 16){
		//incrementa um e seta essa tamanho pro body
		document.body.style.fontSize = (tamanho+1) + "px";
	//Se for pra diminuir e o tamanho ainda não é menor que 8
	}else if(par == 'diminuir' &amp;&amp; tamanho &gt; 7){
		//decrementa um e seta o tamamnho pro body
		document.body.style.fontSize = (tamanho-1) + "px";
	}
}</pre>
<p>Assim que entramos na página a propriedade responsável pelo tamanho da fonte do body ainda não terá nenhum valor. Nesse caso, deixamos o tamanho com o valor que estamos colocando pro body no css, ou seja 10px.</p>
<p>De fato, existem n maneiras para fazermos a <strong>alteração do tamanho da fonte via javascript</strong>. Portanto seria improvável que conseguisse listar todas elas aqui! Deixo abaixo, outra alternativa que segue o mesmo princípio da função acima, porém tem um código mais limpo.</p>
<pre class="brush:javascript">function fonte(par){
	tamanho = document.body.style.fontSize;
	tamanho = (!tamanho) ? 10 : parseInt(tamanho.substring(0,2));
	if(par == 'aumentar' &amp;&amp; tamanho &lt; 16)
		tamanho++;
	else if(par == 'diminuir' &amp;&amp; tamanho &gt; 7)
		tamanho--;
	document.body.style.fontSize = tamanho+"px";
}</pre>
<p>Pra utilizarmos a função, podemos chamá-la através de um link:</p>
<pre class="brush:html"><a onclick="fonte('aumentar')" href="javascript:;">Aumentar Fonte</a>
<a onclick="fonte('diminuir');" href="javascript:;">Diminuir Fonte</a></pre>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geracaobeta.com/2010/01/alterando-o-tamanho-da-fonte-com-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

