quarta-feira, 24 de setembro de 2008

Converter String em Numero no Action Script ( Flash )

Essa é a função mais secreta secreta do Flash,
todo mundo precisa, e ninguem acha, o nome ainda não é nada óbvio.
se você ja precisou obter um dado numérico de uma caixa de texto, se bateu com isso.
Ja procurei por strtoInt, stringvalue, valueint .... e muitas outras opções, mas o correto é:

parseInt()
e
parseFloat()

parseInt("3.1415");
Retorna: 3

parseFloat("3.1415");//parseFloat retorna as casas decimais.
Retorna: 3.1415

parseInt("olá");
Retorna: NaN (Not a Number = Não é numero)
parseInt("4coisa")
Retorna: 4 (interessante, ele pega qualquer coisa que fo
parseInt("0xFF")
Retorna : 255 (FF é este numero em exadecimal)
Para utilizar os outras representações como acima, ainda é possivel especificar no segundo parâmetro como abaixo

parseInt
("FF", 16);
Retorna: 255

parseInt("1000", 2);
Retorna: 8 que é o 1000 em binário

terça-feira, 2 de setembro de 2008

Propagação de domínio, como acelerar o processo?

Semana passada tive que mudar de servidor porque meu site estava consumindo muito o processador do antigo servidor que era compartilhado.
No mesmo dia notificado do problema ja solicitei o novo servidor, efetuei o pagamento no dia seguinte ja estava tudo pronto para migrar.
Agendei a migração para a madrugada para o site funcionar normalmente o tempo todo. acompanhei o processo acordado, e fui alterar a DNS no registroBR após a migração.
Pensei, até amanhã cedo esta tudo funcionando no novo servidor :-)

Dia seguinte, 50% do tráfego no novo e o restante no antigo.... (urgente, mensagem de Manutenção)
Dia seguinte, 70% do tráfego no novo e o restante no antigo....
Dia seguinte, 70% no novo servidor... respondendo email para justificar a mensagem de manutenção e erros ocorridos)
Dia seguinte, 60% no novo servidor, agora me irritei...
e o pior, sempre fazendo um ping meussites.com.br hora no servidor novo hora no antigo novamente.

solução, pesquisa, pesquisa... todos os lugares dizem menos de 72h.

porém percebo que a indicação de DNS não é dada apenas pelo órgão de registro, os próprios servidores informam este dado. Então vamos arriscar...

Fui ao WHM acessei entrada DNS do servidor antigo, em cada domínio existe uma indicação de IP e entradas DNS, informando que é realmente ali que mora o site. Pensei, é aqui que mora o problema.
Correndo o risco de ficar off-line mudei tudo.
coloquei em todos os campos possíveis o novo IP e nome do servidor (quanto aos email não havia problema porque estava tudo no Google Apps e nada seria perdido)

Resultado: 4 horas depois (pouco para quem esperou quase 5 dias) o tráfego no antigo endereço CESSOU... UFA!!!....
Serviço reestabelecido. tudo funcionando.
agora posso dormir!!!

Conclusão: Os bancos de dados de DNS não se alimentam apenas dos registros oficiais, mas também da resposta do Servidor, quando alguém acessa o meu site no servidor antigo ele acaba contradizendo o registro e divulgando para internet que o site ainda esta naquele servidor e não é necessário renovar o IP.
como eu tenho acesso às entradas DNS do WHM posso fazer isso, não é possível caso tenha acesso apenas ao CPanel. (no CPanel você pode apenas corrigir a entrada MX, ou seja, o IP para recebimento de email)

Contradizendo o óbvio, talvez uma solução melhor é quando alterar o site, simplesmente apagar tudo no servidor antigo. você ficará talvez um dia off-line, mas será apenas 1 ou 2 dias

sexta-feira, 8 de agosto de 2008

Lista com últimos posts do fórum phpBB

Tenho um site principal e adicionei um fórum PHPBB em um subdomínio.
No início poucos acessavam o fórum então para interagir o meu site com o fórum coloquei uma caixa com com os últimos post do fórum....
O resultado foi instantâneo, a visitação do fórum multiplicou por 8.

Abaixo segue o modelo da caixa que inseri pouco antes do rodapé,

Mais embaixo o código PHP para acessar o fórum phpBB e capturar o último posts de cada tópico.
Como pode ser notado, a pesquisa é feita com um SELECT dentro do outro para que seja primeiramente ordenados os post por ordem cronológica e depois agrupado para obter apenas 1 (o último) post de cada Tópico.


Agora no fórum

Último Tópico postado
início do texto do último tópico do fórum....

penultimo Tópico postado
início do texto do último Post do penultimo tópico....

Outro topico
ultimo post de outro tópico.....

Outro topico
ultimo post de outro tópico.....

Outro topico
ultimo post de outro tópico.....

Outro topico
ultimo post de outro tópico.....


<?php

//Conectando ao banco de dados, não é necessário se já conectado
mysql_connect ("localhost", "USUARIO", "SENHA") or die('Não foi possível conectar ao banco de dados devido: ' . mysql_error());

//Selecionando o Banco de dados do phpBB
mysql_select_db ("site_phpbb");

$resultado =
mysql_query("
SELECT topic_id, forum_id, post_time, post_subject, post_text, topic_id, forum_id, COUNT(*) AS total
FROM (
SELECT topic_id, forum_id, post_time, post_subject, post_text, topic_id, forum_id, 1 AS total
FROM posts
WHERE post_approved = 1
ORDER BY post_time DESC
) as zz
GROUP BY zz.topic_id, zz.forum_id
ORDER BY post_time DESC LIMIT 6
");

echo "<div class='forum'> <h2>Agora no f&oacute;rum</h2>";
while($row = mysql_fetch_array($resultado)){
if(substr($row['post_subject'],0,3)=="Re:"){//Remove o termo Re: do título do post
$topico =
substr($row['post_subject'],3);

}
else{
$topico = $row[
'post_subject'];
}
echo "<a href='http://forum.meusite.com.br/viewtopic.php?f=".$row['forum_id']."&t=".$row['topic_id']."&start=".(floor($row['total']/10)*10)."' target='_blank'><h3>".$topico."</h3><p>".substr($row['post_text'],0,40).".....</p></a>";
}
echo "</div>";

?>

terça-feira, 29 de julho de 2008

Novo ícone do Google Analytics

Percebi que desde hoje o Google Analytics esta com um novo ícone
é uma miniatura de um gráfico de estatísticas semelhantes ao do Próprio Analytics

A maioria dos sites do google utiliza o mesmo ícone porém o Analytics não é o primeiro a utilizar ícone diferente, alguns exemplos bem famosos são o do Blogger e também do Orkut


Neste ano o Google vem fazendo algumas alterações em seus ícones, a poucos meses os produtos google sempre levavam o ícone Big G (um G maiúsculo azul com fundo branco), e agora é o discreto

segunda-feira, 16 de junho de 2008

Redimencionar MovieCliep Externos

Em um trabalho recente precisava baixar alguns arquivos swf externos e corrigir o tamanho.

Descobri que NÃO FUNCIONA Fazer assim:

MeuMovie.loadMovie("http://boolen.blogspot.com/exemplo.swf");
MeuMovie._width = 100;
MeuMovie._height = 100;


Isso ocorre porque estranhamente objetos externos não sofrem as influencias do MovieClip onde este foi inserido.

Qual a Solução?

O Objeto "Baixado" só pode ser redimencionado no momento em que é feito o Download e incluído no swf pai.

Para fazer isso, não é possível utilizar o loadMovie mas sim o loadClip (que faz o mesmo e um pouco mais)
Siga os passos:

  1. Primeiro é necessario criar um objeto Listener para relacionar os eventos do arquivo que devem chamar alguma função.

    var
    mclListener:Object = new Object();

  2. Em seguida criar o objeto que faz o Download dos arquivos

    var Loader_mcl:MovieClipLoader = new MovieClipLoader();

  3. Relacionar o evento LOAD aos eventos importantes que deve executar alguma ação.

    Loader_mcl.addListener(mclListener);

  4. Criar a função que será iniciada quando o Download for iniciado aqui estou redimencionando o arquivo que esta sendo carregado para o swf.

    mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
    ob_mc._width = 100;
    ob_mc._height = 100;
    };

  5. Em seguida inserir em algum lugar a função que vai fazer com que o processo comece.
    Aqui eu coloquei dentro de um Botão, mas claro que poderia estar externamente para ser executada ao iniciar o arquivo



    // Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
    Quad_mc.onPress = Baixar(p){

    Loader_mcl.loadClip("meuswf.swf", ondevai);

    }

Tudo Junto fica assim:

var mclListener:Object = new Object();
var Loader_mcl:MovieClipLoader = new MovieClipLoader();
Loader_mcl.addListener(mclListener);
mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
ob_mc._width = 100;
ob_mc._height = 100;
};
// Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
Quad_mc.onPress = Baixar(p){

Loader_mcl.loadClip("meuswf.swf",
ondevai);
}

O Único problema é que não posso redimencionar o MovieClip posteriormente, é apenas na hora que estou baixando.
E assim a minha idéia de Zoom pregressivo foi pro espaço

sexta-feira, 6 de junho de 2008

Site de Origem não identificado no Google Analytics

Possuo um site de Classificados e tenho reparado que ao clicar em um link o Google Analytics não tem identificado tão bem o site de origem (meu site).

Fui pesquisar e descobri como ajudar o analytics a identificar isso.

Além de identificar corretamente descobri algumas formas de você identificar cada uma das divulgações na internet ou anúncios com o Analytics.


O analytics verifica a movimentação do seu site com os seguintes cookies
  • __utma
    Verifica se o visitante é novo ou antigo (expira em 2 anos)
  • __utmb e __utmc
    Calculam o tempo que o visitante ficou no site
  • __utmz
    Relativo à origem do Visitante (esse que nos interessa)
o valor deste cookie é dado da seguinte forma

utmcsr=[origem]|utmccn=[campanha]|utmcmd=[TipoDaOrigem]|
utmctr=[PalavraChave]|utmcct=[ModeloDeAnuncio]


Como Enviar dados para esse cookie?

Utilize os seguintes parâmetros nos seus links.
utm_source=sitedeorigem.com.br


utm_medium=
  • organic (para sites de Busca)
  • referral (para sites de referencia)
  • outros (pode ser usado qualquer outro, e o Analytics colocará na categoria outros
utm_term=palavrachave
Se o teu site realiza buscas use a palavra chave, ou a seção do site onde esta o link

utm_content=

Modelo de anúncio (esse é raro ser utilizado)
Ex: Banner, Lista de favoritos

utm_campaign=
Campanha (também raro)
Ex: Promoção de outono...

assim o link ficara

http://www.link.com.br/?utm_source=boolen.blogspot.com&utm_medium=referral&
utm_term=Dicas%20para%20Analytics&utm_content=Link&utm_campaign=Promocao

Para construir o seu link você pode utilizar uma ferramenta do Analytics no seguinte Link

http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&answer=55578


Se você você tem um site e quer verificar qual a melhor publicidade utilize os parametros acima quando cadastrar um link em algum lugar









Ja tenho meus parâmetros
Caso você ja possua parâmetros próprios que façam isso, então é só adaptar o código do analytics para que interprete assim

pageTracker._setCampNameKey("camp"); // Campanha
pageTracker._setCampMediumKey("tipo"); // TIPO DA ORIGEM
pageTracker._setCampSourceKey("origem"); // ORIGEM
pageTracker._setCampTermKey("kwd"); // palavrachave
pageTracker._setCampContentKey("01"); // Modelo
pageTracker._initData();
pageTracker._trackPageview();