Essa dica é um conselho pra quem esta afim de sincronizar as fotos do seu iPhone com o iTunes e, assim como eu, quer fazer um Backup antes.
No mac existe um programa que se chama Image Capture. Ele vai funcionar não só com o iPhone, mas também com câmeras fotográficas.
Entrando no programa (esta dentro da pasta Applications), vc seleciona as fotos que quer importar, ou se quer importar todas, indica a pasta em que essas fotos devem ser salvas, e pronto! Seu backup esta ok, e vc pode sincronizar com o iTunes sem medo.
People who looked at this item also looked at…
Related items
Demorei um pouco pra conseguir fazer isso, mas achei uma solução muito boa.
Pra fazer isso, é preciso usar uma forma inteligente de acessar itens pelo css.
HTML
<html>
<body>
<ul>
<li>Primeiro</li>
<li>Segundo</li>
<li>Terceiro></li>
</ul>
</body>
</html>
CSS
ul li{
z-index: 10;
}
ul li+li{
z-index: 9;
}
ul li+li+li{
z-index: 8;
}
People who looked at this item also looked at…
Related items
Acabei de lançar um novo blog no BrasilBlog: o Meu Imã.
Esse blog funcionará como uma loja virtual de Imãs de Geladeira, e estréia com um kit do Space Invaders, com 13 imãs.
Pra saber mais, clique aqui e acesse o site.
People who looked at this item also looked at…
Sim, o Google Street View está disponível em São Paulo, e a produtividade nas empresas deve cair muito nas próximas horas(rs). Mais de 100km disponíveis.
Clique aqui.
Exibir mapa ampliado
Related items

Esse erro ocorre no Flash, quando você cria um EventListener no AS3, e não habilita a função que será acionada a receber o retorno do evento.
Esta confuso né? vamos mostrar no código.
Imagine que eu crie esse listener aqui:
Essa seria a forma errada de criar a função preso:
function preso():void{
//actions
}
O correto é habilitar a função pra receber o retorno do evento:
//actions
}
People who looked at this item also looked at…
Related items
Precisei aqui formatar um número, inserindo o divisor de milhares, que facilita muito na leitura de números relativamente grandes. Por default, o Flash não faz isso sozinho, e soh vai ter uma classe específica pra isso na versão CS5, que não é a que travalho.
A solução foi escrever uma função que resolvesse meu problema, ou melhor, meu problema e da Gi Pungan, que foi quem programou boa parte desse belo infográfico, e que a mim coube esses detalhes.
Nesse código aqui embaixo eu espero receber um número com duas casas decimais. O Flash vai me trazer o “.” pra separar o inteiro dos decimais. Transformo então esse número numa string, substitui o “.” por “,” e dai insiro o “.” como divisor de milhares:
var retorno = txt.toString();
retorno = retorno.replace(“.”,“,”);var str = retorno.substr(-3);
for(var i = 2; i<=Math.floor(retorno.length / 3); i++){
if(i > 2){
str = “.” + str;
}
str = retorno.substr(-i*3,3) + str;
}
if(retorno.length % 3 != 0){
if(retorno.length / 3>2){
str = “.” + str;
}
str = retorno.substr(0,retorno.length % 3) + str;
}
retorno = str;
return retorno;
}
People who looked at this item also looked at…
Related items
Estava montando uma página pra testes, e precisava deixar ela acessível somente com senha. A página na verdade era toda em PHP, e não trazia nada de conteúdo da página. A única coisa que eu queria é que ela fosse acessível pra o template.
Criei ela como modelo de página do WordPress, e depois inseri uma nova página, sem conteúdo, somente usando aquele modelo, e no item “Visibilidade” coloquei “Protegida por senha”. Acessei a página e ele não restringiu o acesso.
A solução foi usar o comando post_password_required(). Ele retorna “false” se a página não estiver protegida por senha, ou se a senha estiver no cache. Caso contrário retorna “true”. E pra poder solicitar que o visitante digite uma senha, bastou usar o “the_content” quando o retorno do comando anterior fosse true.
Aqui vai como ficou o trecho do código:
If (post_passwrd_required()){
the_content();
}else{
// O código da página que vc quer proteger
}
People who looked at this item also looked at…
Related items
Precisei habilitar um captcha pra um site de votação, e no começo bati um pouco a cabeça, mas depois encontrei o caminho certo.
Pra não reinventar a roda, usei o Captcha mais famoso existente, o reCAPTCHA, e aqui embaixo segue um passo a passo do que você precisa fazer pra utilizar ele no seu site também.
- Acesso o site do reCAPTCHA, e cadastre-se lá. Você pode depois inserir diversos sites no seu perfil;
- Cadastre o site onde você irá utilizar o serviço. Esse cadastro é feito apenas para o domínio principal, e todos os subdomínios utilizam os mesmos dados. Atente para o fato que você pode habilitar suas Keys pra funcionar em qualquer URL, mas aconselho a usar isso somente se a sua aplicação vai rodar em vários domínios, fugindo ao seu controle;
- Após o cadastro você tera dois dados: sua chave pública (Public Key), e a chave privada (Private Key). Vamos usar elas no próximo passo;
- Na documentação do reCAPTCHA você encontra os plugins para as mais diversas linguagens. Nesse exemplo (que foi a minha necessidade) vamos fazer no ASP Clássivo. Eu uso o exemplo de códigos usado por eles, com uma pequena modificação. Abaixo segue o código que eu estou usando:
<%recaptcha_challenge_field = Request(“recaptcha_challenge_field”)recaptcha_response_field = Request(“recaptcha_response_field”)recaptcha_public_key = “SUA_CHAVE_PUBLICA” ‘ your public keyrecaptcha_private_key = “SUA_CHAVE_PRIVADA” ‘ your private key‘ returns the HTML for the widgetfunction recaptcha_challenge_writer()recaptcha_challenge_writer = _“<script type=”"text/javascript”">” & _“var RecaptchaOptions = {” & _” theme : ‘clean’,” & _” lang : ‘pt’,” & _” tabindex : 0″ & _“};” & _“</script>” & _“<script type=”"text/javascript”" src=”"http://www.google.com/recaptcha/api/challenge?k=” & recaptcha_public_key & “”"></script>” & _“<noscript>” & _“<iframe src=”"http://www.google.com/recaptcha/api/noscript?k=” & recaptcha_public_key & “”" frameborder=”"1″”></iframe><>” & _“<textarea name=”"recaptcha_challenge_field”" rows=”"3″” cols=”"40″”></textarea>” & _“<input type=”"hidden”" name=”"recaptcha_response_field”"value=”"manual_challenge”">” & _“</noscript>”end function‘ returns “” if correct, otherwise it returns the error responsefunction recaptcha_confirm(rechallenge,reresponse)Dim VarStringVarString = _“privatekey=” & recaptcha_private_key & _“&remoteip=” & Request.ServerVariables(“REMOTE_ADDR”) & _“&challenge=” & rechallenge & _“&response=” & reresponseDim objXmlHttpSet objXmlHttp = Server.CreateObject(“Msxml2.ServerXMLHTTP”)objXmlHttp.open “POST”, “http://www.google.com/recaptcha/api/verify”, FalseobjXmlHttp.setRequestHeader “Content-Type”, “application/x-www-form-urlencoded”objXmlHttp.send VarStringDim ResponseStringResponseString = split(objXmlHttp.responseText, vblf)Set objXmlHttp = Nothingif ResponseString(0) = “true” then‘They answered correctlyrecaptcha_confirm = “”else‘They answered incorrectlyrecaptcha_confirm = ResponseString(1)end ifend function%>
- Insira o código acima em um arquivo .asp, por exemplo inc.captcha.asp, não esquecendo de inserir sua chave pública e sua chave privada no início do arquivo;
- Crique um arquivo chamado formulario.asp e nele você vai inserir seu formulário normalmente, no início do arquivos vamos fazer o include do inc.captcha.asp e no formulário vamos inserir a chamada para o captcha. Exemlpo:
<!–#include file=”inc.captcha.asp”–>
<html>
…
<form name=”formulario” method=”post” action=”processa.asp”>
…
<%=recaptcha_challenge_writer()%>
<input type=”submit”>
</form>
</html> - O próximo passo será criar o processa.asp que irá receber os dados do seu formulário. Nesse arquivo você vai novamente fazer o include do inc.captcha.asp, e rodar a função de verificação. Se o captcha foi digitado corretamente ele retorna uma string vazia, caso contrário retorna um erro. Abaixo um exemplo pro tratamento:
<!–#include file=”inc.captcha.asp”–>
validaCaptcha = recaptcha_confirm(recaptcha_challenge_field,recaptcha_response_field)
if(validaCaptcha = “”) then
Response.write(“Sucesso!”)
else
Reponse.write(“Erro!”)
end if
%>
O básico esta ai. Com isso da pra você já brincar um pouco com o reCAPTCHA. Vale gastar alguns minutos lendo um pouco a documentação, inclusive sobre a parte de personalização. Sucesso ai!
People who looked at this item also looked at…
Related items
Hoje conversando com o Daniel que trabalha comigo, descobri uma coisa muito interessante: os “.” num endereço de e-mail do gmail são facultativos. Isso mesmo. Tanto faz você mandar um e-mail para fulano.silva@gmail.com como para fulanosilva@gmail.com. Ambos irão para a mesma pessoa.
Tenha seu e-mail “.” ou não, eles podem ser inseridos repetidas vezes no seu endereço. E não é soh isso. Sua conta de e-mail pode ter diversos aliases (apelidos) sem muito trabalho. Explico: adicionando um “+” imediatamente antes do arroba, seguido por qualquer texto, também vai pra sua caixa de mensagens. Exemplo: fulanosilva+listas@gmail.com vai pra conta fulanosilva@gmail.com.
Pode parecer besteira, mas essa facilidade de criar alias pode te ajudar na organização da sua caixa de entrada, e na criação de regras pra gerenciar seus e-mails quando chegam. Como no exemplo acima, você pode usar pra todas as suas listas de e-mail o endereço com o +listas e criar uma regra pra sempre que vir e-mail pra esse endereço, cair direto numa pasta soh pra e-mails de listas, e assim por diante.
Legal né? Anote essa daí, porque eu achei muito interessante.
People who looked at this item also looked at…
Related items
Se você precisa gerar um trecho de texto aleatório pra usar como uma senha automática, ou algo do tipo, escrevi um código bem simples para fazer isso.
Nesso código uso o comando range do PHP, que gera um array com uma lista de valores incrementando do menor ao maior. Explico: range(1,9) vai gerar um array, onde os valores vão de 1 a 9. Esse comando aceita letras também. Abaixo segue o código:
function geraSenha($ln=8){
. $chars = array_merge(range(‘a’, ‘z’), range(0, 9));
. shuffle($chars);
. return(substr(implode($chars),0,$ln));
}
Nessa função você pode enviar o tamanho que quer da sua string, ou deixar que automaticamente ele gerará com tamanho de 8 caractere. Lembrando, a função vai retornar um texto mesmo, e não um array.
Faça bom proveito.



Comentários