<?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>Danilo Trindade &#187; Programação</title>
	<atom:link href="http://danilotrindade.com.br/tag/programacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://danilotrindade.com.br</link>
	<description>Javascript, Php e o que der na telha...</description>
	<lastBuildDate>Wed, 15 Dec 2010 13:15:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The blog you have requested is not installed properly</title>
		<link>http://danilotrindade.com.br/the-blog-you-have-requested-is-not-installed-properly/</link>
		<comments>http://danilotrindade.com.br/the-blog-you-have-requested-is-not-installed-properly/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 20:58:00 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Utilidade pública]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Erros]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Repair]]></category>
		<category><![CDATA[Word Press]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/?p=127</guid>
		<description><![CDATA[Caros,
Tive esse problema e foi dureza!
Esta solução do (Proverbian) não adiantou no meu caso, mas vale lembrar que cada caso é um caso, por isso olhem esta solução e veja se resolve. Agora&#8230; partindo do princípio que você está com problemas, ter uma solução é muito bom, então se essa não for a sua :P [...]]]></description>
			<content:encoded><![CDATA[<p>Caros,</p>
<p>Tive esse problema e foi dureza!</p>
<p>Esta solução do (<strong><a class="wpGallery" href="http://foundationu.com/shiloh/?p=639">Proverbian</a></strong>) não adiantou no meu caso, mas vale lembrar que cada caso é um caso, por isso olhem esta solução e veja se resolve. Agora&#8230; partindo do princípio que você está com problemas, ter uma solução é muito bom, então se essa não for a sua :P tente a outra que &#8220;descobrir&#8221;, com muito sufoco e <strong><em>debug</em></strong> na veia&#8230; é&#8230; &#8220;debugar&#8221; deveria ser uma especialidade (claro que para alguns sistemas, pois outros mesmo que tenham sido desenvolvidos em <a class="wpGallery" href="http://php.net"><strong>PHP</strong></a> utilizam recursos ou  framework  para controlar isso).</p>
<p>Bom, como os erros no <a class="wpGallery" href="http://pt-br.wordpress.com"><strong>Word Press</strong></a> não são claros, apenas através do <em><strong>debug</strong></em> descobri que uma tabela do meu <a class="wpGallery" href="mu.wordpress.org"><strong>Word Press Mu</strong></a> estava corrompida!!! Isso mesmo, só passar o &#8220;<span style="color: #008000;">repair table NOME_DA_TABELA;</span>&#8221; do MySQL e pronto, voltou a funcionar normalmente!</p>
<p><a class="wpGallery" href="http://dev.mysql.com/doc/refman/5.0/en/repair-table.html"><strong>- Referência do repair</strong></a></p>
<p>Ah, no meu caso era a tabela <strong>wp_1_options</strong> que estava corrompida.</p>
<p>Basicamente eu descobri que os registros que eram feitos nesta tabela não eram executados foi então que comecei o <em><strong>debug</strong></em> e por fim &#8220;printei&#8221; os erros de MySQL que o <a class="wpGallery" href="http://pt-br.wordpress.com"><strong>Word Press</strong></a> omite.</p>
<p>Espero ter ajudado e qualquer solução diferente para este problema façam como o amigo acima, divulguem-na.</p>
<p>Abs,<br />
Chapoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/the-blog-you-have-requested-is-not-installed-properly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solução alternativa do Delegate</title>
		<link>http://danilotrindade.com.br/solucao-alternativa-do-delegate/</link>
		<comments>http://danilotrindade.com.br/solucao-alternativa-do-delegate/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 13:29:29 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Orientação a objetos]]></category>
		<category><![CDATA[Classes]]></category>
		<category><![CDATA[Contexto]]></category>
		<category><![CDATA[Delegate]]></category>
		<category><![CDATA[Escopo]]></category>
		<category><![CDATA[Função]]></category>
		<category><![CDATA[Objetos]]></category>
		<category><![CDATA[Orientado]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Utilidade pública]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/?p=15</guid>
		<description><![CDATA[Em muitos casos que postei aqui e também em situações profissionais usei o Delegate (post anterior) e simplesmente ele resolveu vários problenas quando estava trabalhando com classes e perdia o escopo do objeto em alguns métodos.
A pouco, desenvolvendo uma nova classe, me deparei com um problema chato.
Seguem as Situações:
Tinha numa classe, no método [this.iniciar] um [...]]]></description>
			<content:encoded><![CDATA[<p>Em muitos casos que postei aqui e também em situações profissionais usei o <span style="color: #ffcc00;"><strong><a title="Classe Delegate" href="http://danilotrindade.com.br/classe-delegate/">Delegate</a></strong></span> (post anterior) e simplesmente ele resolveu vários problenas quando estava trabalhando com classes e perdia o escopo do objeto em alguns métodos.</p>
<p>A pouco, desenvolvendo uma nova classe, me deparei com um problema chato.</p>
<p><span style="color: rgb(51, 51, 51);"><strong>Seguem as Situações:</strong></span></p>
<p>Tinha numa classe, no método [this.iniciar] um código que seria executado quando um evento ocorresse, mas ao passar o método para o evento, das duas uma: Ou Conseguia pegar o evento e o escopo era perdido (situação 1) ou tinha o escopo (usando o Delegate) porém não tinha o evento :( (situação 2). Segue abaixo os exemplos:</p>
<p><span style="color: rgb(51, 51, 51);"><strong>Situação 1:</strong></span></p>
<pre class="syntax-highlight:javascript">
...
this.iniciar = function() {
    document.onmousemove = this.verifica;
}

this.verifica = function(e) {
    // Tenho o evento mas não tenho o escopo
}
...
</pre>
<p><span style="color: rgb(51, 51, 51);"><strong>Situação 2:</strong></span></p>
<pre class="syntax-highlight:javascript">
...
this.iniciar = function() {
    document.onmousemove = Delegate.create(this, this.verifica, Array(&#039;&#039;));
}

this.verifica = function(e) {
    // Tenho o escopo mas não tenho o evento
}
...
</pre>
<p><span style="color: rgb(51, 51, 51);"><strong>Consegui resolver o problema da seguinte maneira:</strong></span></p>
<pre class="syntax-highlight:javascript">
NomeDaClasse = function() {
    with(this) {
        ...
        this.iniciar = function() {
            document.onmousemove = this.verifica;
        }

        this.verifica = function(e) {
            // Tenho o evento
            // Tenho o escopo
            teste(); // Não use o this.teste();
        }

        this.teste = function() {
            alert(&#039;Estou no escopo&#039;);
        }
        ...
    }
};
</pre>
<p>Imaginei que usando o with poderia ser uma luz e não acreditei que isso funcionaria até testar!!!</p>
<p><span style="color: rgb(51, 51, 51);"><strong>Obs.:</strong></span><br />
- No exemplo acima, se você usar o [this] dentro do evento, ou seja, dentro do método [this.verifica] você estará no escopo do objeto [document].<br />
- Se você tiver uma função fora da classe com o nome idêntico de algum método da classe não vai dar conflito, porém você não vai acessar a função externa também!</p>
<p>Abs,<br />
Chapooo!</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/solucao-alternativa-do-delegate/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Classe Delegate</title>
		<link>http://danilotrindade.com.br/classe-delegate/</link>
		<comments>http://danilotrindade.com.br/classe-delegate/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 15:15:02 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Orientação a objetos]]></category>
		<category><![CDATA[Utilidade pública]]></category>
		<category><![CDATA[Classes]]></category>
		<category><![CDATA[Contexto]]></category>
		<category><![CDATA[Delegate]]></category>
		<category><![CDATA[Escopo]]></category>
		<category><![CDATA[Função]]></category>
		<category><![CDATA[Objetos]]></category>
		<category><![CDATA[Orientado]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/?p=14</guid>
		<description><![CDATA[Caros,
Quando você está programando em Javascript Orientado a Objetos, você pode se deparar com diversos problemas e um deles é a perda de escopo do objeto (this). Uma solução simples é usar a classe Delegate, em poucas palavras ela executa uma função/método no contexto do objeto original.
Segue a classe abaixo:

// No Google...  - Estático
Delegate [...]]]></description>
			<content:encoded><![CDATA[<p>Caros,</p>
<p>Quando você está programando em Javascript Orientado a Objetos, você pode se deparar com diversos problemas e um deles é a perda de escopo do objeto (this). Uma solução simples é usar a classe <em><strong>Delegate</strong></em>, em poucas palavras ela executa uma função/método no contexto do objeto original.</p>
<p><span style="color: #333333;"><strong>Segue a classe abaixo:</strong></span></p>
<pre class="syntax-highlight:javascript">
// No Google...  - Estático
Delegate = {
    versao: &quot;1.0&quot;
}

Delegate.create = function(obj, func, args) {
    f = function() {
        var target = arguments.callee.target;
        var func   = arguments.callee.func;
        var args   = arguments.callee.args;

        return func.apply(target, (args.length &lt; 1 ? arguments : args));
    };

    f.args = (args != undefined &amp;&amp; args.length &gt; 0 ? args : new Array());
    f.target = obj;
    f.func = func;

    return f;
}
</pre>
<p><span style="color: #333333;"><strong>Outra forma bacana e mais simples que achei:</strong></span></p>
<pre class="syntax-highlight:javascript">
Delegate = {
	create: function (obj, func, params) {
		var f = function() { return func.apply(obj, params); };

		return f;
	}
}
</pre>
<p><span style="color: #333333;"><strong>Exemplo da implementação:</strong></span></p>
<pre class="syntax-highlight:javascript">
...
this.a = function() {
// Não chame a função this.b() desta forma,
// pois ela executará antes do tempo correto
	setTimeout(Delegate.create(this, this.b, Array(&#039;&#039;)), 1000);
}

this.b = function() {
	alert(this.c());
}

this.c = function() {
	return &#039;Olá&#039;;
}
...
</pre>
<p>Essa classe me quebrou vários galhos.</p>
<p>Abs,<br />
Chapoo</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/classe-delegate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fazendo um scroll personalizado e simples</title>
		<link>http://danilotrindade.com.br/fazendo-um-scroll-personalizado-e-simples/</link>
		<comments>http://danilotrindade.com.br/fazendo-um-scroll-personalizado-e-simples/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 14:28:14 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Orientação a objetos]]></category>
		<category><![CDATA[Classes]]></category>
		<category><![CDATA[Objetos]]></category>
		<category><![CDATA[Orientado]]></category>
		<category><![CDATA[Personalizado]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Rolagem]]></category>
		<category><![CDATA[Scroll]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/?p=9</guid>
		<description><![CDATA[Olá,
Já me pediram várias vezes algum script simples para fazer um scroll, então finalmente fiz uma classe para atender esta necessidade.
Fiz uma classe básica, mas vai ajudar quem gostaria de fazer um scroll personalizado e simples.
Segue a implementação:
Baixe o pacote Rolagem.zip
Crie o objeto &#8216;Rolagem&#8217; passando como parâmetro o nome do objeto onde terá o scroll, [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Já me pediram várias vezes algum script simples para fazer um scroll, então finalmente fiz uma classe para atender esta necessidade.</p>
<p>Fiz uma classe básica, mas vai ajudar quem gostaria de fazer um scroll personalizado e simples.</p>
<p><strong>Segue a implementação:</strong></p>
<p>Baixe o pacote <strong><a title="Pacote da Classe Rolagem" href="/scripts/js/util/rolagem.zip"><span style="color: #888888;"><span style="text-decoration: none;">Rolagem.zip</span></span></a></strong></p>
<p>Crie o objeto &#8216;Rolagem&#8217; passando como parâmetro o nome do objeto onde terá o scroll, exemplo:</p>
<pre class="syntax-highlight:javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
    rolagem = new Rolagem();
    rolagem.definirCaixaRolagem(&#039;STRING_ID_OBJETO&#039; OU document.getElementById(&#039;OBJ&#039;));
&lt;/script&gt;
</pre>
<p>E na setas (para cima e para baixo) coloque as <strong><span style="color: #3366ff;">funções</span></strong> nos eventos <span style="color: #339966;">ONMOUSEDOWN</span>, <span style="color: #339966;">ONMOUSEUP </span>e <span style="color: #339966;">ONMOUSEOUT </span>como sugere abaixo, veja:</p>
<p><strong>SUBIR TEXTO</strong> (Seta para baixo):</p>
<pre class="syntax-highlight:xhtml">
    &lt;a href=&quot;javascript:;&quot; onmousedown=&quot;rolagem.definirDirecao(&#039;cima&#039;); rolagem.rolar();&quot; onmouseup=&quot;rolagem.parar();&quot; onmouseout=&quot;rolagem.parar();&quot;&gt;SUBIR&lt;/a&gt;
</pre>
<p><strong>DESCER TEXTO</strong> (Seta para cima):</p>
<pre class="syntax-highlight:xhtml">
    &lt;a href=&quot;javascript:;&quot; onmousedown=&quot;rolagem.definirDirecao(&#039;baixo&#039;); rolagem.rolar();&quot; onmouseup=&quot;rolagem.parar();&quot; onmouseout=&quot;rolagem.parar();&quot;&gt;DESCER&lt;/a&gt;
</pre>
<p>Bom&#8230; é isso!</p>
<p>Abs,</p>
<p>Chapoo</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/fazendo-um-scroll-personalizado-e-simples/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Classe para realçar objetos</title>
		<link>http://danilotrindade.com.br/classe-para-realcar-objetos/</link>
		<comments>http://danilotrindade.com.br/classe-para-realcar-objetos/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 16:00:12 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Orientação a objetos]]></category>
		<category><![CDATA[Animação]]></category>
		<category><![CDATA[Cores]]></category>
		<category><![CDATA[Hexadecimal]]></category>
		<category><![CDATA[Objetos]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/?p=8</guid>
		<description><![CDATA[Olá,
Mais uma vez estou aqui para compartilhar algumas idéias, desta vez fiz uma classe que foge um pouco do meu dia-a-dia, um tipo de animação em Javascript.
Um amigo precisava fazer um efeito para realçar um objeto e então como qualquer desafio disse que faria e acabou resultando na classe &#8216;Realce&#8217;. Só que como já estava [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Mais uma vez estou aqui para compartilhar algumas idéias, desta vez fiz uma classe que foge um pouco do meu dia-a-dia, um tipo de animação em Javascript.</p>
<p>Um amigo precisava fazer um efeito para realçar um objeto e então como qualquer desafio disse que faria e acabou resultando na classe <strong>&#8216;Realce&#8217;</strong>. Só que como já estava com a mão na massa fiz a classe (Estática) <strong>&#8216;Hexadecimal&#8217;</strong> que basicamente converte uma cor hexa (<em>Ex.: FF0000</em>) para decimal (<em>Ex.: 255, 0, 0</em>) e vice-versa, segue a implementação:</p>
<p>Ah&#8230; usaremos também a classe estática <strong>&#8216;Delegate&#8217;</strong> que disponibilizei no exemplo de <a title="Drag’n Drop v.1" href="http://http://danilotrindade.com.br/dragn-drop-v1/">Drag</a> anterior.</p>
<p>Baixe o pacote: <a title="Pacote com as classes necessárias" href="/scripts/js/util/realce.rar"><strong>Realce.rar</strong></a></p>
<p>Após incluir em seu código as 3 classes você apenas precisa instanciar a classe <strong>&#8216;Realce&#8217;</strong> e aplicar os métodos:</p>
<pre class="syntax-highlight:javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
    r = new Realce();
    r.definirObjeto(&#039;STRING_ID_OBJETO&#039; OU document.getElementById(&#039;OBJ&#039;));
    r.definirCorInicial(&#039;FF0000&#039;);
    r.definirCorFinal(&#039;FFFF00&#039;);
    r.realcar();
&lt;/script&gt;
</pre>
<p>Executanto o script acima o efeito que teremos é o realce da cor definida como Inicial para o &#8216;FFFFFF&#8217; que é o branco, mas se após aplicar o método <strong>&#8216;definirCorInicial&#8217;</strong> você aplicar o outro método da classe <strong>&#8216;definirCorFinal&#8217;</strong> definindo outra cor, a animação vai realçar de uma cor para outra.</p>
<p>Espero que tenham gostado&#8230;</p>
<p>Abs,<br />
Chapoo</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/classe-para-realcar-objetos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapa de caracteres</title>
		<link>http://danilotrindade.com.br/mapa-de-caracteres/</link>
		<comments>http://danilotrindade.com.br/mapa-de-caracteres/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 21:33:34 +0000</pubDate>
		<dc:creator>Chapolin</dc:creator>
				<category><![CDATA[Utilidade pública]]></category>
		<category><![CDATA[Ascii]]></category>
		<category><![CDATA[Caracteres]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://danilotrindade.com.br/blog/?p=4</guid>
		<description><![CDATA[Desde que conheço internet conheço um cara que sempre me ajuda é Ascii Table, seja com codificação para HTML, JS, XSL, XML ou qualquer outra situação que precisa saber, por exemplo:
O valor decimal de ? = 63
O valor hexa de &#38; = 26
Ao contrário do que se imagina estas situações são mais comuns do que [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que conheço internet conheço um cara que sempre me ajuda é <a href="http://asciitable.com">Ascii Table</a>, seja com codificação para HTML, JS, XSL, XML ou qualquer outra situação que precisa saber, por exemplo:</p>
<p>O valor decimal de ? = 63<br />
O valor hexa de &amp; = 26</p>
<p>Ao contrário do que se imagina estas situações são mais comuns do que parece.</p>
<p>Abs,<br />
Chapoo!</p>
]]></content:encoded>
			<wfw:commentRss>http://danilotrindade.com.br/mapa-de-caracteres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

