Sempre que eu vejo esse erro, lembro disso aqui:
http://www.hiyoooo.com/
sexta-feira, 31 de outubro de 2014
Funções de tempo com Javascript
window.setTimeout('funcao()', intervalo_em_milisegundos); //roda apenas uma vez
window.setInterval('funcao()', intervalo_em_milisegundos); //roda 1x a cada intervalo
Fonte: http://rogeriolino.wordpress.com/2006/12/19/javascript-settimeout-e-setinterval/
quarta-feira, 27 de agosto de 2014
Trocando o editor do crontab para o nano
Só vale para a sessão atual do ssh, mas já ajuda:
env EDITOR=nano crontab -e
Criando link simbólico para uma pasta
Assim:
O detalhe é que a pasta ~/logs não deve existir na hora em que for rodar o comando.
ln -s /var/log/apache2/ ~/logs
O detalhe é que a pasta ~/logs não deve existir na hora em que for rodar o comando.
sexta-feira, 1 de agosto de 2014
Algumas regras para o htaccess
#redirecionando para www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dominio.com.br [NC]
RewriteRule ^(.*)$ http://www.dominio.com.br/$1 [R=301,L]
#habilitando compressao gzip no php
php_value output_handler ob_gzhandler
#habilitando cache do apache
ExpiresActive On
ExpiresDefault A2419200
ExpiresByType image/x-icon A2419200
ExpiresByType application/x-javascript A2419200
ExpiresByType text/css A2419200
ExpiresByType text/html A518400
#desabilitando cache para scripts com conteudo dinamico
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
ExpiresActive Off
</FilesMatch>
#habilitando rewrite para urls amigaveis
RewriteEngine On
#enviando requisicoes ao dominio.com/sitemap para o arquivo gerador do sitemap
RewriteRule ^sitemap(.*)$ sitemap.php [L]
#redirecionando todas as requisicoes para o index.php, que serve como main controller
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cod=$1 [QSA]
#habilitando CORS (cross site http requests)
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
#habilitando compressao do apache
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
Executando um comando como Root via php
Assim:
O detalhe é o 'echo' antes, pra enviar a senha pro sudo, e o -y, pra não pedir confirmação sobre a instalação.
<?php
$outPut = shell_exec("echo senha | sudo -S apt-get -y install openssh-server");
echo "<pre>$outPut</pre>";
?>
O detalhe é o 'echo' antes, pra enviar a senha pro sudo, e o -y, pra não pedir confirmação sobre a instalação.
quinta-feira, 27 de fevereiro de 2014
Contos Insuportáveis #001
- Bom dia, posso falar com o programador?
- É ele falando.
- Oi, o sistema de vocês tá fora do ar.
- Tá?
- Sim, eu tou tentando acessar e não consigo.
- Peraí que eu vou ver.
- E nem vem dizer que é a minha internet. Todos os outros sites acessam, menos o do sistema de vocês.
- Então me faz um favor. Tenta encostar a sua língua no seu cotovelo.
- Como?
- Tenta encostar a língua no cotovelo, oras.
- Tá de brincadeira comigo, né?
- Claro que não. Só preciso fazer um teste.
- Não dá. Não consigo.
- Tá, agora faz o seguinte. Pede pra um colega fazer isso.
- O quê? Pedir pra alguém lamber meu cotovelo? Tá doido é?
- Não é pra lamber. É só pra encostar a língua. Na verdade nem precisa encostar, é só pra ver se alguém consegue encostar.
- Pedi pro Jorge e ele disse que conseguiria, se não fosse nojento. E agora?
- Tu não consegue encostar a língua no cotovelo, e não consegue acessar o sistema. Se isso não significa que o teu cotovelo está fora do ar, então o sistema também não está fora do ar.
(na minha cabeça, isso ficou engraçado)
- É ele falando.
- Oi, o sistema de vocês tá fora do ar.
- Tá?
- Sim, eu tou tentando acessar e não consigo.
- Peraí que eu vou ver.
- E nem vem dizer que é a minha internet. Todos os outros sites acessam, menos o do sistema de vocês.
- Então me faz um favor. Tenta encostar a sua língua no seu cotovelo.
- Como?
- Tenta encostar a língua no cotovelo, oras.
- Tá de brincadeira comigo, né?
- Claro que não. Só preciso fazer um teste.
- Não dá. Não consigo.
- Tá, agora faz o seguinte. Pede pra um colega fazer isso.
- O quê? Pedir pra alguém lamber meu cotovelo? Tá doido é?
- Não é pra lamber. É só pra encostar a língua. Na verdade nem precisa encostar, é só pra ver se alguém consegue encostar.
- Pedi pro Jorge e ele disse que conseguiria, se não fosse nojento. E agora?
- Tu não consegue encostar a língua no cotovelo, e não consegue acessar o sistema. Se isso não significa que o teu cotovelo está fora do ar, então o sistema também não está fora do ar.
(na minha cabeça, isso ficou engraçado)
segunda-feira, 24 de fevereiro de 2014
Procurando e substituindo um texto por outro, em vários arquivos, via shell
sudo find /home/usuario -name \*.php -exec sed -i "s/valorantigo/novovalor/g" {} \;
Fonte: http://askubuntu.com/questions/84007/find-and-replace-text-within-multiple-files
sexta-feira, 21 de fevereiro de 2014
Utilizando o encurtador de url do Google com php
Primeiro, precisamos do cliente da api do google em php, no seguinte link:
https://github.com/google/google-api-php-client
Incluímos a biblioteca e instanciamos a classe, assim:
Após isso, é só acessar as propriedades do objeto $shorUrl pra pegar o link encurtado. Não lembro agora quais são, mas um var_dump nesse objeto resolve.
Também precisa ter uma conta no Google Developers, pra pegar a chave de autenticação.
https://github.com/google/google-api-php-client
Incluímos a biblioteca e instanciamos a classe, assim:
set_include_path(get_include_path() . PATH_SEPARATOR . '/home/ferramen/public_html/src');
require_once 'Google/Client.php';
require_once 'Google/Service/Urlshortener.php';
$client = new Google_Client();
$client->setApplicationName("API Project");//nome do seu projeto
$client->setDeveloperKey("sua_developer_key");sua chave de autenticação no google developer
$service = new Google_Service_Urlshortener($client);
$url = new Google_Service_Urlshortener_Url();
$url->longUrl = $link; //$link contém a url original
$shortUrl = $service->url->insert($url);
Após isso, é só acessar as propriedades do objeto $shorUrl pra pegar o link encurtado. Não lembro agora quais são, mas um var_dump nesse objeto resolve.
Também precisa ter uma conta no Google Developers, pra pegar a chave de autenticação.
sexta-feira, 31 de janeiro de 2014
Redirecionando de um domínio para outro e mantendo os parâmetros na url
Com .htaccess, obviamente.
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ http://novodominio.com/$1 [QSA]
terça-feira, 21 de janeiro de 2014
Exportando um ou mais registros no MySql com mysqldump
Ás vezes a gente precisa exportar só um registro de uma tabela.
Dá pra fazer assim:
Só pra lembrar: o parâmetro -p recebe a senha 'colada' nele, por exemplo, se a senha for 'estrogonofe', fica assim:
E no final, onde tem '~/insert.sql', é onde vai ser gerado o arquivo com o comando sql pra dar o insert no banco.
Dá pra fazer assim:
mysqldump -t -u usuario -psenha banco tabela --where=id_tabela=666 > ~/insert.sql
Só pra lembrar: o parâmetro -p recebe a senha 'colada' nele, por exemplo, se a senha for 'estrogonofe', fica assim:
mysqldump -t -u usuario -pestrogonofe banco tabela --where=id_tabela=666 > ~/insert.sql
E no final, onde tem '~/insert.sql', é onde vai ser gerado o arquivo com o comando sql pra dar o insert no banco.
quarta-feira, 18 de dezembro de 2013
Trocando o wallpaper do Windows usando linha de comando
Ingredientes: Irfanview, uma pasta com imagens, e Windows.
1 - Instale o Irfanview. Talvez precise instalar o Windows antes.
2 - Crie um arquivo com a extensão .bat, com o conteúdo abaixo:
4 - Crie outro arquivo .bat, com o conteúdo abaixo. Esse arquivo é quem dá o comando pro Irfanview trocar a imagem:
Happy festivus!
1 - Instale o Irfanview. Talvez precise instalar o Windows antes.
2 - Crie um arquivo com a extensão .bat, com o conteúdo abaixo:
dir D:\Wallpapers /s /b *.jpg > list.txt
3 - Execute este arquivo para gerar a lista de imagens.4 - Crie outro arquivo .bat, com o conteúdo abaixo. Esse arquivo é quem dá o comando pro Irfanview trocar a imagem:
i_view32.exe /filelist=D:\wallpapers\list.txt /random /wall=0 /killmesoftly
Happy festivus!
sexta-feira, 6 de dezembro de 2013
Plugin para 'zebrar' tabelas ou listas com jQuery
(function( $ ){
$.fn.zebrar = function(options) {
var defaults = {
'par' : 'lightgrey',
'impar' : 'white'
};
var settings = $.extend( {}, defaults, options );
return this.each(function(index,elemento) {
if((index % 2)==0)
{
$(this).css({ background: settings.par });
}else{
$(this).css({ background: settings.impar });
}
});
};
})( jQuery );
Utiliza assim:
<script src="js/zebrar.js"></script>
<script>
$(function(){
$('ul li').zebrar();
)
</script>
<style>
ul{
list-style-type:none;
padding:0;
margin:0;
}
ul li{
display:block;
}
</style>
<ul>
<li><a href="#">Nunc tincidunt</a></li>
<li><a href="#">Proin dolor</a></li>
<li><a href="#">Aenean lacinia</a></li>
</ul>
Também dá pra passar os parâmetros para as cores das linhas, assim:
$('ul li').zebrar({par:'blue',impar:'red'});
Nota: deixar de ser preguiçoso e usar o github pra códigos grandes.
terça-feira, 3 de dezembro de 2013
Verificando se a variável existe em javascript
Existem aproximadamente 362,57 jeitos diferentes de se verificar se uma variável em javascript existe ou não.
Esse é o que eu vou usar:
Pronto, agora não preciso mais pesquisar cada vez que precisar disso.
Esse é o que eu vou usar:
if (typeof variavel!== "undefined")
Pronto, agora não preciso mais pesquisar cada vez que precisar disso.
quinta-feira, 31 de outubro de 2013
Redirecionando o usuário para um subdomínio
No .htacces na pasta pública:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dominio.com [NC]
RewriteRule ^(.*)$ http://www.dominio.com/$1 [R=301,L]
sexta-feira, 18 de outubro de 2013
Avisar se o usuário esqueceu de gravar o formulário
Primeiro, criamos uma variável:
No evento change de qualquer elemento, alteramos essa variável, para sabermos que o usuário mexeu no formulário:
Depois, no evento beforeunload da janela, precisamos ver se a variável foi alterada.
Se sim, damos o alerta, perguntando se ele quer mesmo sair.
Ah, quando o usuário envia o formulário, precisamos setar a variável como true, para que não apareça o alerta.
Se tu tiver usando o jquery validation, fica assim:
var alguem_mexeu_no_meu_queijo = false;
No evento change de qualquer elemento, alteramos essa variável, para sabermos que o usuário mexeu no formulário:
$('select, input, textarea').change(function(){
alguem_mexeu_no_meu_queijo = true;
});
Depois, no evento beforeunload da janela, precisamos ver se a variável foi alterada.
Se sim, damos o alerta, perguntando se ele quer mesmo sair.
window.onbeforeunload = function(){
if(alguem_mexeu_no_meu_queijo==true)
{
return 'Alguém mexeu no meu queijo.';
}
}
Ah, quando o usuário envia o formulário, precisamos setar a variável como true, para que não apareça o alerta.
Se tu tiver usando o jquery validation, fica assim:
$('#form').validate({ , submitHandler: function(form) {
alguem_mexeu_no_meu_queijo
= false; form.submit(); } });
quinta-feira, 17 de outubro de 2013
Aumentando o tamanho do array _POST
No .htaccess, assim:
php_value max_input_vars 3000
Claro que o jeito certo é não deixar um formulário com 1000 inputs, que é o valor padrão, mas é mais fácil fazer isso do que revisar mais scripts jurássicos feitos por terceiros e quartos.
php_value max_input_vars 3000
Claro que o jeito certo é não deixar um formulário com 1000 inputs, que é o valor padrão, mas é mais fácil fazer isso do que revisar mais scripts jurássicos feitos por terceiros e quartos.
sexta-feira, 11 de outubro de 2013
Relógio em javascript
Um pequeno relógio em javascript:
<form name="crono" style="margin:0px;">
<input id="relogio" width="30" />
<script language="JavaScript">
var data = new Date();
function data_inicial(ano,mes,dia,hora,minuto,segundo){
data.setFullYear(ano)
data.setMonth(mes-1)
data.setDate(dia)
data.setHours(hora)
data.setMinutes(minuto)
data.setSeconds(segundo)
}
function zeros(number) {
if (number < 10) {
number = ("0"+number);
}
return number;
}
function Relogio() {
var formato = zeros(data.getDate())+'/'+zeros(data.getMonth()+1)+'/'+zeros(data.getFullYear())+' '+zeros(data.getHours())+':'+zeros(data.getMinutes())+':'+zeros(data.getSeconds());
data.setSeconds(data.getSeconds()+1)
document.getElementById('relogio').value = formato;
setTimeout("Relogio()",1000);
}
data_inicial(2013, 09, 12, 15, 09, 05); //comente para começar com a data atual
Relogio();
</script>
</form>
Utilizando jquery-ui tabs + jquery validation plugin
Quando o plugin encontra um elemento com erro, o elemento automaticamente ganha foco.
Mas quando o elemento está em uma aba que não está habilitada no momento, não acontece nada.
Pra que o elemento ganhe foco e a aba passe a ser a ativa, segue a função:
Mas quando o elemento está em uma aba que não está habilitada no momento, não acontece nada.
Pra que o elemento ganhe foco e a aba passe a ser a ativa, segue a função:
$('#formulario').validate({
ignore: "",//para validar os elementos que estão nas abas desabilitadas
highlight: function(element, errorClass, validClass) {
var div = $(element).parents('.ui-tabs-panel').attr('id');//encontra a div em que está o elemento inválido
var index = $('#tabs ul li a').index($('a[href="#'+div+'"]')); //encontra o indice nos links
$("#tabs").tabs( "option", "active", index ); //seta a aba como ativa
}
});
Assinar:
Postagens (Atom)