Um exemplo rápido que me pegou desprevinido por não ler atentamente a documentação: a função empty do PHP retorna TRUE para um array com um indice de valor nulo.
Ex.: ARRAY[ 0 => null ]
Está certo que eu esperava um array vazio, mas na conversão do xml para a aplicação ele criou este índice. Quando verifiquei o que estava acontecendo, primeiramente imprimindo o valor da variável, achei que o teste deveria retornar TRUE pois zero => null = NADA não é mesmo?
Lendo rapidamente a documentação (no site oficial, SEMPRE) ele afirma que o empty retorna TRUE apenas para um array TOTALMENTE vazio, ou seja:
ARRAY[]. Faz sentido, afinal 0 no array será um índice, e não, NADA.
Por isto, sempre é bom conhecer bem a função que você está utilizando e verificar possíveis outputs que você atribuirá (ou receberá como no meu caso) para as variáveis.
That's it!
sexta-feira, 29 de abril de 2011
segunda-feira, 25 de abril de 2011
Calculo de dias com campos data no POSTGRESQL
Para retirar a quantidade de dias baseada em um campo de data ou timestamp, o POSTGRESQL permite realizar estes cálculos de maneira bem prática.
Como exemplo, tenho o campo locacoes.saida (timestamp da tabela locacoes) de um DVD. Quero calcular quantos dias, até agora, ele esta com o cliente sem levar em conta as horas:
SELECT (CURRENT_DATE - locacoes.saida::date) FROM locacoes;
O resultado desta conta será o total de dias que se passaram da data de saida do DVD. Repare que o TYPECAST para date é importante, e somá-lo a outro tipo DATE também. Se ao invés disto, vc fizer:
SELECT (NOW() - locacoes.saida) FROM locacoes;
ele retornará algo como: "4 days 17:51:23.338403" que é o tipo INTERVAL no banco, levando em conta as horas.
Existem mais coisas que se pode fazer com datas no POSTGRESQL, leia a seção no manual do postgresql que é muito interessante.
Thats it!
Como exemplo, tenho o campo locacoes.saida (timestamp da tabela locacoes) de um DVD. Quero calcular quantos dias, até agora, ele esta com o cliente sem levar em conta as horas:
SELECT (CURRENT_DATE - locacoes.saida::date) FROM locacoes;
O resultado desta conta será o total de dias que se passaram da data de saida do DVD. Repare que o TYPECAST para date é importante, e somá-lo a outro tipo DATE também. Se ao invés disto, vc fizer:
SELECT (NOW() - locacoes.saida) FROM locacoes;
ele retornará algo como: "4 days 17:51:23.338403" que é o tipo INTERVAL no banco, levando em conta as horas.
Existem mais coisas que se pode fazer com datas no POSTGRESQL, leia a seção no manual do postgresql que é muito interessante.
Thats it!
Marcadores:
Banco de dados,
Cálculo dias campo Date,
Date,
Interval,
postgreSQL,
Timestamp
segunda-feira, 28 de fevereiro de 2011
A rede social: nada de novo...
Assisti o filme "A rede social" neste final de semana.
Oscar? Roteiro original? "Pera" lá né Holywood, só um idiota para aclamar tanto assim um filme que conta a história banal de mais um programador tentando alavancar um projeto na web. A diferença? Uma sucessão de acontecimentos a favor do nosso "herói" mas que a sorte apenas escolheu como sendo Zuckerberg.
Poderia ser qualquer um de nós, quem já não teve um projeto como este? Uma idéia, original ou não, com muitas horas de programação e pouca grana para tocar. O Orkut já não existia? Existia sim! O que diferenciou o Facebook dos outros? Exclusividade. Sim, o Orkut também necessitava de convites, mas no Facebook, somente quem era de Harvard poderia entrar.
Parabéns ao cara por ele ser um escroto com caruda suficiente para deixar para trás até o melhor amigo...
Mas tudo bem, ele é bilionário e nós estamos aqui, tentando...
Oscar? Roteiro original? "Pera" lá né Holywood, só um idiota para aclamar tanto assim um filme que conta a história banal de mais um programador tentando alavancar um projeto na web. A diferença? Uma sucessão de acontecimentos a favor do nosso "herói" mas que a sorte apenas escolheu como sendo Zuckerberg.
Poderia ser qualquer um de nós, quem já não teve um projeto como este? Uma idéia, original ou não, com muitas horas de programação e pouca grana para tocar. O Orkut já não existia? Existia sim! O que diferenciou o Facebook dos outros? Exclusividade. Sim, o Orkut também necessitava de convites, mas no Facebook, somente quem era de Harvard poderia entrar.
Parabéns ao cara por ele ser um escroto com caruda suficiente para deixar para trás até o melhor amigo...
Mas tudo bem, ele é bilionário e nós estamos aqui, tentando...
Marcadores:
A rede social,
Crítica,
Facebook,
Filmes
quarta-feira, 9 de fevereiro de 2011
Apagão no Nordeste
Sério.
Falem sério.
A desculpa que conseguiram dar até agora para o apagão foi de que "um cartão magnético emitiu um sinal errado blah blah blah blah blah..." ops, me perdi no sinal errado, desculpe.
Muita besteira em uma frase só. Que desculpa mais esfarrapada. Cartão magnético emitindo sinal? Estes senhores estão ofendendo minha inteligência. Nossa inteligência... Quer dizer, inteligência de alguns brasileiros... Quer dizer, inteligência de poucos brasileiros, afinal, os eleitores deles acreditaram nisso...
Esconder o real motivo porque?
Sério.
Tá de brincadeira?
SÉRIO!
Falem sério.
A desculpa que conseguiram dar até agora para o apagão foi de que "um cartão magnético emitiu um sinal errado blah blah blah blah blah..." ops, me perdi no sinal errado, desculpe.
Muita besteira em uma frase só. Que desculpa mais esfarrapada. Cartão magnético emitindo sinal? Estes senhores estão ofendendo minha inteligência. Nossa inteligência... Quer dizer, inteligência de alguns brasileiros... Quer dizer, inteligência de poucos brasileiros, afinal, os eleitores deles acreditaram nisso...
Esconder o real motivo porque?
Sério.
Tá de brincadeira?
SÉRIO!
Marcadores:
Apagão,
cartão magnético,
energia elétrica,
Nordeste
domingo, 12 de setembro de 2010
Open SSL e Certificados no Apache: autenticação mútua
O melhor guia que encontrei para autenticação mútua entre Apache e Cliente.
Contém um tutorial para gerar: CA, chaves, certificados e tudo que você precisa para um ambiente de desenvolvimento com certificados digitais para web:
http://www.cafesoft.com/products/cams/ps/docs30/admin/ConfiguringApache2ForSSLTLSMutualAuthentication.html
Isso aí!
Contém um tutorial para gerar: CA, chaves, certificados e tudo que você precisa para um ambiente de desenvolvimento com certificados digitais para web:
http://www.cafesoft.com/products/cams/ps/docs30/admin/ConfiguringApache2ForSSLTLSMutualAuthentication.html
Isso aí!
Marcadores:
Apache,
Certificado Digital,
Open SSL
sábado, 11 de setembro de 2010
Recriações de jogos dos anos 80!
http://www1.folha.uol.com.br/multimidia/videocasts/796802-pac-man-humano-usa-111-pessoas-para-recriar-jogo-classico.shtml
Marcadores:
Curiosidade,
Dica,
Pac Man
quarta-feira, 25 de agosto de 2010
Utilizando a mesma sessão do browser em Applets Java
Ao surgir a necessidade de auntenticar um e-token no navegador, utilizei o Java. Porém não imaginava como seria difícil manter a sessão do ususário através do plugin.
Pesquisei na documentação e outras fontes, mas estava difícil. Aparentemente se você faz uma chamada detro do Applet, utilizando a classe URLConnection, é uma chamada totalmente diferente.
Mas existe uma solução simples, e que pode evoluir até para algo mais elegante, mas me atenho ao básico que é minha necessidade no momento.
Ao chamar a tag (embed, object ou applet) passe como parametro o nome e o valor do cookie que controla sua sessão. Em PHP fica assim:
<param name="cookie_name" value="nome-do-cookie >
<param name="cookie_value" value="" >
Capture dentro do Applet o valor:
String cookie_name = getParameter('cookie_name');
String cookie_value = getParameter('cookie_value');
E ao realizar a chamada para a url que deseja, passe o cookie:
URLConnection conn = new URLConnection(url);
conn.setRequestProperty('Cookie', cookie_name + "=" + cookie_value);
Pronto.
Existe uma maneira de pegar os sent headers, dentre eles os cookies enviados, automaticamente e em um laço, repassá-los adiante, mas como eu comentei antes, não foi minha necessidade algo tão elegante.
Keep it simple!
Pesquisei na documentação e outras fontes, mas estava difícil. Aparentemente se você faz uma chamada detro do Applet, utilizando a classe URLConnection, é uma chamada totalmente diferente.
Mas existe uma solução simples, e que pode evoluir até para algo mais elegante, mas me atenho ao básico que é minha necessidade no momento.
Ao chamar a tag (embed, object ou applet) passe como parametro o nome e o valor do cookie que controla sua sessão. Em PHP fica assim:
<param name="cookie_name" value="nome-do-cookie >
<param name="cookie_value" value="" >
Capture dentro do Applet o valor:
String cookie_name = getParameter('cookie_name');
String cookie_value = getParameter('cookie_value');
E ao realizar a chamada para a url que deseja, passe o cookie:
URLConnection conn = new URLConnection(url);
conn.setRequestProperty('Cookie', cookie_name + "=" + cookie_value);
Pronto.
Existe uma maneira de pegar os sent headers, dentre eles os cookies enviados, automaticamente e em um laço, repassá-los adiante, mas como eu comentei antes, não foi minha necessidade algo tão elegante.
Keep it simple!
Marcadores:
Applet Java,
Desenvolvimento,
Java,
Programação,
Sessão,
URLConnection
Assinar:
Postagens (Atom)