PrtScr – Um excelente programa gratuito para captura de telas

Esta semana eu precisava montar um treinamento para a equipe de suporte aqui onde eu trabalho, o que envolvia muitas capturas de tela.

Inicialmente eu estava tirando printscreen e editando no gimp, mas isso me gerava muito trabalho.

Então apos um pouco de pesquisa no oráculo google achei esse programa que é freeware e cumpre bem o papel dele.

Algumas features do programa:

– Acessivel via Ctrl+PrintScreen ou tecla customizada
– Anotações em tempo real
– Suporta multiplos monitores
– Captura de area personalizada, retangulo, toda a tela e janela ativa
– Exporta em bmp, jpg ou png

O vídeo abaixo mostra algumas funções dele:

E finalmente, o link para download:
http://www.fiastarta.com/PrtScr/Download.html

Bloqueio de Bad User Agent via htaccess ou httpd.conf

Notei diversos atauqes a servidores usando os identificadores “Mozilla/3.0 (compatible; Indy Library)” , “HTTP Client“, “libwww” e “havij” então decidí bloqueá-los permanetntemente, no meu caso useu a configuração diretamente no httpd.conf do servidor, mas também pode ser realizado via .htaccess

 

SetEnvIfNoCase User-Agent ^Mozilla.*Indy badUA
SetEnvIfNoCase User-Agent "HTTP Client" badUA
SetEnvIfNoCase User-Agent ^.*Havij badUA
SetEnvIfNoCase User-Agent "libwww-perl" badUA
Order Allow,Deny
Allow from all
Deny from env=badUA

Algumas informações que achei na net:

Indy Library – Normalmente essas requisições vem de suites de ferramentas da borland para delfi/c++
HTTP Client – Requisições genericas
libwww – Vem da lib Perl::LWP (Library for WorldWideWeb in Perl)
Havij – Ferramenta para testes de segurança em websites, usado normalmente para ataques via sql injection (em breve um post sobre a ferramenta)

———————————————-
Posted Listening: “Doctor Doctor – UFO”

Descendo ips invalidos via /sbin/ip

Ambiente Operacional: CentOS

Hoje ocorreu um problema de IP conflitante, porém ao executar /sbin/ifconfig não existia no servidor o IP que eu estava procurando.

Depois de muito fuçar no servidor, rodei o /sbin/ip e lá estava o IP como eth1 secundário.

Depois de um bocado de leitura do man (não estava disponível via shell, achei online) achei o comando pra descer a interface via ip

ip addr del 189.xx.xx.xx/24 dev eth1

A única ressalva é que o formato do ip tem que estar exatamente igual ao executar/sbin/ip addr dhow

———————————————-
Posted Listening: “Cliffs of Dover – Eric Johnson”

Tabela de cores em HTML

Essa é pra quem fica perdido na hora de inserir uma cor via style ou css, possui os códigos e os exemplos de cada cor, o que torna visualmente fácil a escolha =D

http://www.cultura.ufpa.br/dicas/htm/htm-cor1.htm

———————————-
Atualização 15/08/2012
Mais um link com tabela de cores:

http://www.mxstudio.com.br/Conteudos/Dreamweaver/Cores.htm

Lista de Mobile User Agents

O site abaixo contém uma lista bem completa de user agent usado por dispositivos móveis, na maioria celulares.

http://www.zytrax.com/tech/web/mobile_ids.html

Se deseja parsear o site e obter uma lista limpa, pode usar o código abaixo que é disponibilizado no próprio site

$page = file_get_contents('http://www.zytrax.com/tech/web/mobile_ids.html');
preg_match_all('/<(p(?:re)?)[^>]*class="g-c-[ns]"[^>]*>(.*?)</1>/s', $page, $m);

$agents = array();
foreach($m[2] as $agent) {
  $split = explode("n", trim($agent));
  foreach($split as $item) {
    $agents[] = trim($item);
  }
}
// $agents now holds every user agent string, one per array index, trimmed
foreach($agents as $agent) {
 echo($agent."n");
}

———————————————-
Posted Listening: “Starbreaker – Judas Priest”

Deletar tags com pouco ou nenhum uso no wordpress

Os comandos SQL abaixo deletam tags que estajam referenciadas em menos de 10 posts:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count < 10 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Para deletar com referencia em mais (ou menos) posts, basta efetuar ajuste na primeira linha do código acima

———————————————-
Posted Listening: “You Give Love a Bad Name – Bon Jovi”

Reduzir consumo de memoria do firefox

Enquanto o firefox7 e sua prometida “limpeza” no código de javascript para redução do consumo de memoria não saem de projeto, esse plugin quebra bem o galho.

https://addons.mozilla.org/pt-BR/firefox/addon/memory-fox/

Não espere milagres, mas tenho notado uma certa diferença =)

———————————————-
Posted Listening: “Nothing =(”

Inserindo tags automaticamente no wordpress

Esyte plugin usa uma API do yahoo para obter as palavras relevantes do post e automagicamente insere essas tags no post
Uso e recomendo!

Link: http://josh-fowler.com/?page_id=230

———————————————-
Posted Listening: “The number of the Beast – Iron Maiden”

 

Método para validar erros em expressões regulares

Em um determinado momento, tive a necessidade de efetuar validações em expressões regulares inseridas pelo usuário em textbox.

Abaixo segue método que eu utilizei para esta validação:

function validaRegex($regex, $escapar=false)
	{
		if($escapar) $regex = str_replace('/', '/', addslashes($regex));
		$teste = null;
		ini_set('track_errors', 1);
		$teste = @preg_match("/{$regex}/", "<a href="http://$1" target="_blank">[LINK]</a>", $teste);
		$ret = @strip_tags($php_errormsg);
		ini_set('track_errors', 0);
		$r = explode(':', $ret);
		return ($ret) ? array(false, trim($r[1])) : Array(true);
	}

Para explicar o funcionamento:
A variável $teste  (sim, faltou criatividade) recebe o resultado do preg_match, sendo que este recebe no primeiro parametro o valor digitado pelo usuário e o segundo parametro pode ser qualquer porcaria que vier em mente, já que o que nos interessa é se o regex do usuário tem erro ou não

O retorno é um array, sendo que a posição [0] retorna True ou False, e, havendo erro  no regex, a posição [1] retorna a mensagem de erro do php

———————————————-
Posted Listening: “Lights Out – UFO”