terça-feira, 27 de abril de 2010

Tocando Guitarra no Linux (Editor de Tablatura)


Esta dica rápida ensina a instalar o programa de código livre Tuxguitar, um editor de tablatura e partituras multipista, criado por nossos vizinhos argentinos, escrito em Java (em SWT) e dedicado ao público de guitarristas, violonistas e demais instrumentos de cordas que fazem uso da tablatura, acordes cifrados no braço do instrumento e recursos similares.
Com o Tuxguitar é possível se fazer desde simples cópias de músicas até arranjos ou composições arrojadas para a sua banda. Suas versões mais recentes trabalham com diversas opções de áudio: OSS, Java Sound (engrenagem de som nativa do Java), ALSA e Fluidsynth. Suporta plugins e pode converter arquivos em padrões como MIDI, Lilypond e MusicXML, tornando a integração com outros aplicativos de música e som muito mais cômoda. Existe hoje traduções para dezenas de línguas, sendo a tradução para Português do Brasil muito boa.
Uma das características do Tuxguitar é a atenção que é dada também para o público amador, permitindo a edição e/ou criação musical por meios convencionais e alternativos: desde tablatura e partitura até clicando-se sobre o braço do violão! Assim, mesmo quem não sabe ler partitura poderá compor confortavelmente!!
A página do projeto inclui ainda um detalhado manual de usuário e um ativo fórum de problemas e dicas, além de várias capturas de tela (para dar um gostinho antes de instalar...).

  • Instalando o Tuxguitar

E, por falar em gostinho, é possível baixá-lo diretamente de sua página, onde há compilações para os mais diversos sistemas: diversas distros de Linux (e algumas genéricas), Windows, FreeBSD e Mac OSX. Para quem quer experimentar sem compromisso, é possível também rodar a versão online, via Java Web Start.
Opcionalmente, é possível instalá-lo via apt-get, para distros baseadas em Debian. Basta digitar, como root:

apt-get install tuxguitar

  • Rodando o Tuxguitar com o Java Personalizado

Se você instalou o Tuxguitar pelo apt-get e não tem o Java e o SWT instalados, pode ser que você tenha problemas. Pode ser que esteja tudo certo também, mas você tem um outro Java (JRE ou JDK) instalado em seu sistema e quer utilizar este. Como fazer??
A solução simples: o Tuxguitar procura pelo diretório do Java através da variável JAVA_HOME. Basta trocar o valor desta variável e você estará mudando a JRE utilizada para rodar o Tuxguitar. Exemplo:

$ echo $JAVA_HOME
/usr/lib/java

Veja: meu JAVA_HOME padrão é /usr/lib/java. Vamos trocar por uma versão mais recente que eu instalei manualmente em minha máquina:

$ export JAVA_HOME=/opt/jdk1.6.0_10/
$ echo $JAVA_HOME
/opt/jdk1.6.0_10/

Tudo alterado e funcionando normalmente!!
Note que o Tuxguitar também necessita de algumas bibliotecas do SWT. Se você estiver tendo algum problema com isto, ou se quiser usar uma outra versão destas bibliotecas (que você baixou e instalou manualmente), você pode editar o script de inicialização do Tuxguitar, digitando (como root):

vi /usr/bin/tuxguitar

Bom, agora é mãos à obra, compositores!! E, claro, se a música ficar boa, se ficar ruim, se a inspiração veio ou foi embora: COMENTEM!!!!

sexta-feira, 23 de abril de 2010

Fazendo Backup de um Repositório SVN

Um repositório do SVN é, na verdade, um banco de dados, embora tendo suas próprias peculiaridades. Assim, ele pode sofrer backup e pode ter seu conteúdo restaurado, total ou em parte. Este artigo ensina apenas a fazer backup do repositório. Há outros artigos nossos com outros tutoriais sobre o SVN que podem ser consultados: como configurar o SVN por túnel de SSH, os modos de configuração do SVN; configurando o SSH para atuar com o SVN.
Cada repositório SVN tem uma variável numérica que é incrementada a cada novo commit (efetivação), denominada "revision". Quando se faz backup, é interessante saber-se em qual número está o revision, ou para contabilizar a quantidade de alterações que foram enviadas, ou mesmo para saber se houve mudanças realmente desde o último backup. Para se obter o número da revisão mais recente, utilize o seguinte comando:

svnlook youngest [path e nome do repositório]

Exemplo:
$ svnlook youngest /var/svn/repo15
237
$

O comando anterior responde apenas o número da revisão, de forma que sua saída pode ser colocada diretamente em uma variável de um script. Para se obter mais informações sobre quem é o autor da última revisão e quando ele fez o commit, utilize o comando:

$ svnlook info /var/svn/repo15
fulano
2010-04-21 23:48:41 -0300 (Qua, 21 Abr 2010)
48
Esta é a mensagem que o autor deixou na revisão.

As linhas da resposta são: autor, data da revisão, número de caracteres da mensagem e a mensagem da revisão.
Ou, para inspecionar uma revisão anterior específica, use:

$ svnlook info /var/svn/repo15 -r 200
[sendo 200 a revisão antiga que se deseja inspecionar]

  • Backups Completos
O backup completo pode ser feito com o segunte comando:

$ svnadmin dump /var/svn/repo15 > repo15.r237

Isto fará o backup completo do repositório e o colocará no arquivo "repo115.r237", que pode ter o nome que você desejar. É claro que, quanto maior o repositório, mais lenta esta operação e maior será o arquivo (embora o arquivo de backup costume ser menor que o repositório em si). Muitas vezes, é isso mesmo que desejamos. No entanto, é possível se fazer backup de parte do repositório, a partir de números de revisão informados. Outra forma de backup pode ser:

Fazendo uma cópia direta do repositório para outro, que ficará idêntico ao primeiro:

svnadmin hotcopy /var/svn/repo15 /var/svn/repo16
[funciona exatamente como um comando "cp -r"]

Nesta opção, se você usa o Berkeley DB, você pode dar uma "limpada" nos arquivos de log que não são mais usados, diminuindo o tamanho do repositório. Para tanto use esta opção:

svnadmin hotcopy --clean-logs /var/svn/repo15 /var/svn/repo16

O novo repositório criado é completamente funcional e pode inclusive sofrer dump!!

  • Backups Parciais
Utilize o seguinte comando, para fazer backup de apenas uma faixa de revisões desejada:

[backup apenas da revisão 200]
$ svnadmin dump /var/svn/repo15 -r 200 > repo15.r200

[backup apenas da revisão 100 a 200]
$ svnadmin dump /var/svn/repo15 -r 100:200 > repo15.r100-200

Se o seu repositório é gigantesco, é possível que se crie vários arquivos de dump separados. Para tanto, deve-se usar a opção "--incremental". Exemplo:

$ svnadmin dump /var/svn/repo15 -r 0:1000 > dumpfile1
$ svnadmin dump /var/svn/repo15 -r 1001:2000 --incremental > dumpfile2
$ svnadmin dump /var/svn/repo15 -r 2001:3000 --incremental > dumpfile3

  • Recuperando o Backup
Como dizem as boas normas de segurança: não basta fazer o backup, mas é preciso se TESTAR O BACKUP!! Assim, vamos recuperar o backup para o repositório. Sem saber isso, de que valeria tê-lo, não é mesmo??

svnadmin load /var/svn/repo16 < repo15.r237

Isto fará um monte de commits, exatamente como seus autores o fizeram, alimentando o novo repositório com o conteúdo de dump do arquivo de backup.
Um backup direto pode ser feito sem a necessidade de arquivo de backup, da seguinte maneira:

svnadmin dump /var/svn/repo15 | svnadmin load /var/svn/repo16

Bom, espero ter ajudado com todas estas dicas... se este artigo te ajudou, atrapalhou, resolveu seu problema ou acabou de vez com sua vida, simplesmente: COMENTE!!!!