Git… tanto que há para dizer sobre o git

December 14, 2011 – 11:27 am

Operações local/remoto

Enviar um branch criado localmente (-u para manter track entre branch local e remoto):

git push -u origin <your-branch>

Apagar um branch no repositório:

git push origin :<your-branch>

Fazer merge para rever alterações, sem comit: ir para o branch que vai receber as alterações e realizar o comando:

git mergeleader <branch-to-merge>

Fazer com que um branch local fique ligado (tracked) a um branch remoto:

git branch --set-upstream branch_local branch_remoto

Operações locais

Apagar um branch local:

git branch -d <your-branch>

Reverter um ficheiro para a última versão no branch atual:

git checkout -- <file>

Drupal: “Clean URL test fails”

November 14, 2011 – 5:33 pm

Em http://drup.loc/?q=admin/config/search/clean-urls, quando se tem o erro “Clean URL test fails”, o que fazer:

1) Verificar que se tem o .htaccess na raiz do projecto (uma vez que é um ficheiro escondido, por vezes não é colado com os restantes ficherios…);

2) Verificar que o módulo do apache “mod_rewrite” está ligado, por exemplo, verificando se aparece listado na info do phpinfo(). Caso não esteja ligado, correr o comando: >sudo a2enmod rewrite e reiniciar o apache;

3) Verificar que nas diretivas do servidor (no meu caso, /etc/apache2/sites-enabled/000-default), se tem “AllowOverride All” na Directory correspondente à pasta pública.

Guardar senha de SSH durante a sessão

November 11, 2011 – 1:28 am

Comigo este comando

$ssh-add

… basta, em qualquer pasta onde esteja. Caso contrário, ir para a pasta ~/.ssh, escrever o comando

$ssh-add [private_key_name e.g. id_rsa]

…e inserir a senha.

A senha será lembrada enquanto a sessão no computador se mantiver ativa.

Comandos Linux para Mysql

July 7, 2011 – 12:23 pm

Login:
> mysql -u <username> -p <password>

Exportar:
> mysqldump -u <username> <database> | gzip > db.sql.gz

Importar:
> gunzip < db.sql.gz | mysql -u [username] <database>

Mostra/apaga texto pre-definido

May 20, 2011 – 3:41 pm

Uma das boas práticas de acessibilidade é ter todos os inputs HTML pré-preenchidos. Por exemplo, “Insira o seu nome” no campo destinado ao nome do Utilizador.
O seguinte javascript, com jquery 1.4.4, ajuda no seguinte:

  • Ao clicar, se o o campo tem um texto pré-definido pelo sistema, apaga esse texto;
  • Se o campo é pré-definido mas de acordo com um valor inserido pelo Utilizador, não apaga esse texto;
  • Ao retirar o foco do campo, se ficar vazio, volta a mostrar o texto pré-definido;
  • Ao submeter o formulário, se o campo tiver o texto pré-definido apaga esse texto.

O seguinte código obedece a estes requisitos. Há que adicionar aos campos interessantes a class defaultext e os textos pré-definidos pelo sistema devem começar por §.

$(document).ready(function(){
    $('.defaultext').each(function(i,el){
        var txt= el.value;
        $(el).bind('focus', function(){
            if(el.value.substring(0,1)=='§'){el.value=''; $(el).bind('blur', function() {if(el.value==''){el.value=txt;}});}
        });
        var $form= $(el).parents('form');
        try{
            $form= $($form[0]);
            $form.submit(function(){if(el.value.substring(0,1)=='§'){el.value= '';}});
        }catch(e){}
    });
});

Backups

May 17, 2011 – 3:50 pm

No Ubuntu, faço backups regulares destas pastas:

  • /var/lib/mysql/
    BD MySQL;
  • /home/eumesmo/.thunderbird/
    Pasta com perfil e correio do Thunderbird;
  • /home/eumesmo/Documents/
    Ficheiros pessoais;

E é só… quase tudo o resto está na nuvem, ou em repositórios svn!

Comandos de Linux para ficheiros

April 26, 2011 – 2:59 pm

Find in Files:
> grep -irn ‘txt_a_procurar’ /path/para/dir
(opções: i para indiferença a maísuculas, r para recursividade nas diretorias, n para mostrar a linha)

Find & Replace in Files:
> find path/para/ -name ‘*.php’ -print0 | xargs -0 sed -i ’s/antes/depois -/g’

Find Files:
> find /path/para/dir -iname ‘*.txt’

(more here)

Teste de Java sem sucesso

April 6, 2011 – 10:23 am

Inicialmente o teste para verificar se o navegador suportava Java (em http://www.java.com/en/download/testjava.jsp) falhava - tanto no Firefox como no Chrome (aliás, Chromium).

Para ultrapassar este teste, usando apenas o Synaptic do Ubuntu, instalei (ou verifiquei já ter instalado) os seguintes 4 pacotes:

sun-java6-jre + sun-java6-bin + sun-java6-fonts + sun-java6-plugin

Caso não apareçam no Synaptic estes pacotes, executar na linha de comandos:

add-apt-repository "deb http://archive.canonical.com/ natty partner"
sudo apt-get update

Feito:
Your Java is working.
Version: Java SE 6 Update 24
Operating System 2.6.35-28-generic