January 25th, 2008 by flaviocrispim
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 e getCookie.
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.
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.
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.
/**
* Set/Retrieve a cookie
* To get a cookie to call: cookie(‘COOKIE_NAME’);
* To set/update a cookie call: cookie(‘COOKIE_NAME’, ‘COOKIE_VALUE’, ”);
* Expire time:
* – ‘1d’ to indicate expire in one day
* – ‘1h’ to indicate expire in one hour
* – ‘1m’ to indicate expire in one minute
* – defaults to one day.
*/
function cookie(name, value, expire){
if(name && value){
var cookie = [name, '=', value];
if(expire){
var e = {_m:60*1000, _h:60*60*1000, _d:24*60*60*1000, _:60*60*1000};
var params = /(\d*)(\w*)/.exec(expire);
var d = new Date();
d.setTime(d.getTime()+(params[1]*e['_'+params[2].toLowerCase()]));
cookie.push(‘; expires=’+d.toGMTString()+’; path=/’);
}
return document.cookie = escape(cookie.join(”));
}else if(name){
var reg = new RegExp(‘(‘+name+’=)(\\d*[^;]*)’).exec(unescape(document.cookie));
return reg?reg[2]:undefined;
}
return false;
}
Posted in Flavio Crispim, Javascript, web | No Comments »
January 19th, 2008 by flaviocrispim
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 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.
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.
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)
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.
Receita
Ingredientes:
Modo de Preparo do Ambiente:
- Primeiro Instale a JVM e em seguida descompacte o zip do PHP5 no diretório que desejar, sugiro c:\PHP;
- Instalar o Tomcat, basicamente descompacte-o, ou no caso de arquivo ‘.msi’ use o wizard;
- Criar a variável de ambiente JAVA_HOME apontando para o diretório do… … java;
- PHP_HOME para… … c:\PHP;
- CATALINA_HOME – para o diretório onde estão os arquivos do Tomcat;
- Incluir na variável de ambiente PATH os caminhos: %CATALINA_HOME%\bin;%PHP_HOME%;%JAVA_HOME%\bin
- Fechar todas as janelas de comando que estão abertas.
Modo de preparo do PHP no Tomcat
- No diretório c:\PHP existe um arquivo: ‘php.ini-dist’, faça uma cópia dele com o nome… ‘php.ini’;
- Edite o arquivo php.ini e procure por ‘extension=php_java.dll’, verifique se a linha existe e se não está comentada, caso não exista… crie.
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.
- No zip PECL extraia os arquivos: php5servlet.dll, php_java.jar e php_java.dll para o diretório c:\PHP;
- No diretório webapps do tomcat, crie um diretório que servirá como raiz da aplicação PHP, exemplo phpdubsoup;
- 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:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd”>
<web-app>
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>net.php.servlet</servlet-class>
</servlet>
<servlet>
<servlet-name>php-formatter</servlet-name>
<servlet-class>net.php.formatter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>php-formatter</servlet-name>
<url-pattern>*.phps</url-pattern>
</servlet-mapping>
</web-app>
- 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;
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 ‘php5servlet.dll’
- Editar os arquivos: ‘reflect.properties’ e ’servlet.properties’ que se encontram em: phpdubsoup/WEB-INF/classes/net/php. A variável library deve ser igual ao nome da biblioteca, assim:
library=php5servlet
- Na raiz da aplicação phpdubsoup, criar um arquivo chamado test.php, contendo:
<?php phpinfo(); ?>
- Abrir uma linha de comando, e digitar startup, para iniciar o tomcat.
Modo do Consumo

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.
Referência: http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/
Posted in Authors, Flavio Crispim, Javascript, PHP, PHP on Tomcat, Tomcat, howto, web | 1 Comment »
January 11th, 2008 by flaviocrispim
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 ele mesmo, e assim teremos 1 (exceto para x=0).
x/x = 1
-1/-1 = 1
O próximo passo, precisamos obter o resultado numérico ‘1′, mas desta vez, sem mudar o sinal, então dividimos o número por seu módulo:
-10 / |-10| = -10 / 10 = -1
15 / | 15 | = 15 / 15 = 1
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:
Math.signum = function signum(x){
return (x/Math.abs(x))||x;
}
Posted in Flavio Crispim, Javascript, web | No Comments »
|

This is the about me section, you will prob. want to edit this. If you want to change the image you may do so by changing the avatar.jpg located in the NewZen images directory.
|