<?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>Misc - FlavioCrispim &#187; Javascript</title>
	<atom:link href="http://flaviocrispim.com/post/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://flaviocrispim.com</link>
	<description>Fresh Air</description>
	<lastBuildDate>Tue, 29 Jan 2008 02:43:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Javascript e Cookies</title>
		<link>http://flaviocrispim.com/post/20</link>
		<comments>http://flaviocrispim.com/post/20#comments</comments>
		<pubDate>Sat, 26 Jan 2008 02:20:39 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[getcookie]]></category>
		<category><![CDATA[javascript cookie]]></category>
		<category><![CDATA[setcookie]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/post/20</guid>
		<description><![CDATA[Para gravar dados do computador do usuário os sites usam cookies e exitem muitas funções já prontas na internet que fazem o trabalho que gravar um cookie ou para obter o valor gravado em um cookie.
Quase todos os exemplos que encontrei na internet, divide o trabalho em duas funções diferentes, em geral, algo como: setCookie [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Para gravar dados do computador do usuário os sites usam cookies e exitem muitas funções já prontas na internet que fazem o trabalho que gravar um cookie ou para obter o valor gravado em um cookie.</p>
<p align="left">Quase todos os exemplos que encontrei na internet, divide o trabalho em duas funções diferentes, em geral, algo como: setCookie e getCookie.</p>
<p align="left">Cada uma destas funções tem os seus próprios parâmetros, a função setCookie, por exemplo precisa receber o nome do cookie a ser gravado, o valor e a data de validade.</p>
<p align="left">O meu trabalho foi unificar as funções em uma única, tentei fazer um trabalho um pouco mais elegante do que usar split, substring e charAt, assim: RegExp.</p>
<p align="left">A função unificada funciona tanto para gravar um valor quanto para obter o valor de um cookie. A idéia básica é: quando o parâmetro valor for usado, este será gravado no cookie, caso contrário deseja-se obter o valor atual.</p>
<blockquote><p>
/**<br />
* Set/Retrieve a cookie<br />
* To get a cookie to call: cookie(&#8216;COOKIE_NAME&#8217;);<br />
* To set/update a cookie call: cookie(&#8216;COOKIE_NAME&#8217;, &#8216;COOKIE_VALUE&#8217;, &#8221;);<br />
* Expire time:<br />
*  &#8211; &#8216;1d&#8217; to indicate expire in one day<br />
*  &#8211; &#8216;1h&#8217; to indicate expire in one hour<br />
*  &#8211; &#8216;1m&#8217; to indicate expire in one minute<br />
*  &#8211; defaults to one day.<br />
*/<br />
function cookie(name, value, expire){<br />
if(name &amp;&amp; value){<br />
var cookie = [name, '=', value];<br />
if(expire){<br />
var e = {_m:60*1000, _h:60*60*1000, _d:24*60*60*1000, _:60*60*1000};<br />
var params = /(\d*)(\w*)/.exec(expire);<br />
var d = new Date();<br />
d.setTime(d.getTime()+(params[1]*e['_'+params[2].toLowerCase()]));<br />
cookie.push(&#8216;; expires=&#8217;+d.toGMTString()+&#8217;; path=/&#8217;);<br />
}<br />
return document.cookie = escape(cookie.join(&#8221;));<br />
}else if(name){<br />
var reg = new RegExp(&#8216;(&#8216;+name+&#8217;=)(\\d*[^;]*)&#8217;).exec(unescape(document.cookie));<br />
return reg?reg[2]:undefined;<br />
}<br />
return false;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/20/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSP versus PHP? N&#227;o PHP no Tomcat. =P</title>
		<link>http://flaviocrispim.com/post/18</link>
		<comments>http://flaviocrispim.com/post/18#comments</comments>
		<pubDate>Sun, 20 Jan 2008 06:47:13 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Authors]]></category>
		<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP on Tomcat]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/post/18</guid>
		<description><![CDATA[Sou especialista em desenvolvimento de aplicações web, usando tecnologia J2EE.
PHP? Bem tenho um contrato de vários meses com um provedor e na prática, java é bem caro de se manter neste quesito para aplicações web, já PHP consome poucos recursos e todo provedor ofereçe suporte sem custos adicionais.
Ótima oportunidade de conhecer outra tecnologia, tenho algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Sou especialista em desenvolvimento de aplicações web, usando tecnologia J2EE.</p>
<p>PHP? Bem tenho um contrato de vários meses com um provedor e na prática, java é bem caro de se manter neste quesito para aplicações web, já PHP consome poucos recursos e todo provedor ofereçe suporte sem custos adicionais.</p>
<p>Ótima oportunidade de conhecer outra tecnologia, tenho algumas idéias de pequenos projetos, mas e para desenvolver e manter com o menor custo possível precisarei aprender RoR ou PHP, que são as tecnologias disponiveis por padrão no meu provedor.</p>
<p>Porque PHP? Encontrei mais referências, tem uma comunidade maior e bastante ativa e porque pretendo entender um pouco mais do wordpress (escrito em PHP), Ruby on Rails, fica para a próxima.</p>
<p>Por mais ridículo que pareça, decidi sem nenhum motivo em especial pesquisar se seria possível escrever uma aplicação PHP e usar o Tomcat como servidor. (aeuaue)</p>
<p>Funciona sim, mas como não passo de newbie em PHP, não sei se funciona plenamente a ponto de poder rodar um Bugzilla ou um Wordpress.</p>
<h3>Receita</h3>
<blockquote>
<h5>Ingredientes:</h5>
<ul>
<li>1 &#8211; PHP 5.2.5 (<a href="http://www.php.net">http://www.php.net</a>);</li>
<li>1 &#8211; PECL 5.2.5 (<a href="http://www.php.net">http://www.php.net</a>);</li>
<li>1 &#8211; Tomcat 5.5.25 (<a href="http://tomcat.apache.org">http://tomcat.apache.org</a>);</li>
<li>1 &#8211; J2SE 6.0u4 (<a href="http://java.sun.com">http://java.sun.com</a>);</li>
</ul>
<h5>Modo de Preparo do Ambiente:</h5>
<ul>
<li>Primeiro Instale a JVM e em seguida descompacte o zip do PHP5 no diretório que desejar, sugiro c:\PHP;</li>
<li>Instalar o Tomcat, basicamente descompacte-o, ou no caso de arquivo &#8216;.msi&#8217; use o wizard;</li>
<li>Criar a variável de ambiente JAVA_HOME apontando para o diretório do&#8230;      &#8230; java;</li>
<li>PHP_HOME para&#8230;         &#8230; c:\PHP;</li>
<li>CATALINA_HOME &#8211; para o diretório onde estão os arquivos do Tomcat;</li>
<li>Incluir na variável de ambiente PATH os caminhos: %CATALINA_HOME%\bin;%PHP_HOME%;%JAVA_HOME%\bin</li>
<li>Fechar todas as janelas de comando que estão abertas. <img src='http://flaviocrispim.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<h5>Modo de preparo do PHP no Tomcat</h5>
<ul>
<li>No diretório c:\PHP existe um arquivo: &#8216;php.ini-dist&#8217;, faça uma cópia dele com o nome&#8230; &#8216;php.ini&#8217;;</li>
<li>Edite o arquivo php.ini e procure por &#8216;extension=php_java.dll&#8217;, verifique se a linha existe e se não está comentada, caso não exista&#8230; crie.</li>
</ul>
<p>O arquivo zip PECL serve para alguma coisa sim. Existem alguns arquivos que precisam ser extraídos para a pasta raiz do PHP e um último arquivo que deverá ser usado como biblioteca no Tomcat.</p>
<ul>
<li>No zip PECL extraia os arquivos: php5servlet.dll, php_java.jar e php_java.dll para o diretório c:\PHP;</li>
<li>No diretório webapps do tomcat, crie um diretório que servirá como raiz da aplicação PHP, exemplo phpdubsoup;</li>
<li>No diretório Raiz da aplicação crie também o diretório WEB-INF, dentro do WEB-INF crie o diretório classes, ainda no diretório WEB-INF crie um arquivo web.xml, contendo:</li>
</ul>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;<br />
&lt;!DOCTYPE web-app PUBLIC<br />
  &#8220;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&#8221;<br />
  &#8220;<a ?="?" href="http://java.sun.com/dtd/web-app_2_3.dtd">http://java.sun.com/dtd/web-app_2_3.dtd&#8221;</a>&gt;<br />
&lt;web-app&gt;<br />
&lt;servlet&gt;<br />
    &lt;servlet-name&gt;php&lt;/servlet-name&gt;<br />
        &lt;servlet-class&gt;net.php.servlet&lt;/servlet-class&gt;<br />
    &lt;/servlet&gt;<br />
    &lt;servlet&gt;<br />
        &lt;servlet-name&gt;php-formatter&lt;/servlet-name&gt;<br />
        &lt;servlet-class&gt;net.php.formatter&lt;/servlet-class&gt;<br />
    &lt;/servlet&gt;<br />
    &lt;servlet-mapping&gt;<br />
        &lt;servlet-name&gt;php&lt;/servlet-name&gt;<br />
        &lt;url-pattern&gt;*.php&lt;/url-pattern&gt;<br />
    &lt;/servlet-mapping&gt;<br />
    &lt;servlet-mapping&gt;<br />
        &lt;servlet-name&gt;php-formatter&lt;/servlet-name&gt;<br />
        &lt;url-pattern&gt;*.phps&lt;/url-pattern&gt;<br />
    &lt;/servlet-mapping&gt;<br />
&lt;/web-app&gt;</p>
<ul>
<li>No arquivo PECL extraia o arquivo phpsrvlt.jar e extraia o conteúdo deste arquivo jar para o diretório WEB-INF/classes da aplicação phpdubsoup;</li>
</ul>
<p><font color="#000000">O conteúdo do arquivo jar contém os servlets declarados no web.xml, mas na versão usada necessita de uma pequena correção nos arquivos properties, para referenciar corretamente a biblioteca &#8216;php5servlet.dll&#8217;</font></p>
<ul>
<li>Editar os arquivos: &#8216;reflect.properties&#8217; e &#8217;servlet.properties&#8217; que se encontram em: phpdubsoup/WEB-INF/classes/net/php. A variável library deve ser igual ao nome da biblioteca, assim:</li>
</ul>
<p>library=php5servlet</p>
<ul>
<li>Na raiz da aplicação phpdubsoup, criar um arquivo chamado test.php, contendo:</li>
</ul>
<p>&lt;?php phpinfo(); ?&gt;</p>
<ul>
<li>Abrir uma linha de comando, e digitar startup, para iniciar o tomcat.</li>
</ul>
<h5>Modo do Consumo</h5>
<ul>
<li>Abrir o seu browser predileto e acessar a seguinte url: <a href="http://localhost:8080/phpdubsoup/test.php">http://localhost:8080/phpdubsoup/test.php</a>;</li>
<li>Você deverá ver uma página similar a esta:</li>
</ul>
<p><a href="http://flaviocrispim.com/wp-content/uploads/2008/01/phpdubsoup2.PNG" style="margin-left: 100px" title="phpdubsoup2.PNG"><img width="169" src="http://flaviocrispim.com/wp-content/uploads/2008/01/phpdubsoup2.thumbnail.PNG" alt="phpdubsoup2.PNG" height="130" /></a></p></blockquote>
<p>Pronto! PHP rodando dentro do Tomcat. Não é a configuração que irei usar no meu site, mas é assim que darei meus primeiros passos nessa linguagem.</p>
<p>Referência: <a href="http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/" title="http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/">http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/18/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript Math. Signum</title>
		<link>http://flaviocrispim.com/post/15</link>
		<comments>http://flaviocrispim.com/post/15#comments</comments>
		<pubDate>Fri, 11 Jan 2008 23:14:59 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/?p=15</guid>
		<description><![CDATA[Esta função tem como objetivo indicar para um dado número, se o número está mais próximo do infinito negativo ou se está mais próximo do infinito positivo, exemplo:
signum(+321658) = 1
signum(-1452) = -1
signum(0) = 0
Esta função não existe no objeto Math. A idéia básica da construção desta função consiste em dividir o parâmetro de entrada por [...]]]></description>
			<content:encoded><![CDATA[<p>Esta função tem como objetivo indicar para um dado número, se o número está mais próximo do infinito negativo ou se está mais próximo do infinito positivo, exemplo:</p>
<p>signum(+321658) = 1<br />
signum(-1452) = -1<br />
signum(0) = 0</p>
<p>Esta função não existe no objeto Math. A idéia básica da construção desta função consiste em dividir o parâmetro de entrada por ele mesmo, e assim teremos 1 (exceto para x=0).</p>
<p>x/x = 1<br />
-1/-1 = 1</p>
<p>O próximo passo, precisamos obter o resultado numérico &#8216;1&#8242;, mas desta vez, sem mudar o sinal, então dividimos o número por seu módulo:</p>
<p>-10 / |-10| = -10 / 10 = -1<br />
15 / | 15 | = 15 / 15 = 1</p>
<p>Agora só ficou faltando e excessão de zero, por causa da divisão por zero, que é o nosso caso de excessão, então a função ficou assim:</p>
<blockquote><p>Math.signum = function signum(x){<br />
return (x/Math.abs(x))||x;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/15/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
