Hoje vou dar uma dica sobre geração de pacotes utilizando o Subversion.
O cenário é o seguinte: você desenvolve um projeto que utiliza o SVN como controlador de versões.
Periodicamente, você deve enviar pacotes para o cliente com atualizações do sistema (novas implementações, correções, ajustes, enfim...).
Entretanto, tais pacotes são incrementais, já que não é necessário enviar toda a estrutura do sistema a cada atualização.
Pelo Windows, é possível fazer a exportação dos arquivos mediante a utilização da ferramenta TortoiseSVN.
Através da opção Log, é obtido o histórico das revisões. Com base nesse histórico, podemos selecionar a última revisão que fora enviada ao cliente e a revisão desejada, comparar as revisões (a fim de obter os arquivos alterados) e, finalmente, exportá-los para uma pasta que manterá a estrutura do sistema.
Quantas vezes você já teve que abrir 5 terminais e em cada um digitar algo como: ssh usuario@servidor -p porta
Ai depois tem que voltar em cada um pra digitar a senha e só então entrar no servidor.
Afim de agilizar um pouco esse processo, criei esse script que permite que você execute os comandos mais comuns com um simples: goto 0
Para instalar o programa basta baixar o script aqui, colocar em algum lugar do seu path e adicionar permissão de execução:
A manutenção dos comandos é bastante simples, basta executar o goto sem passar nenhum argumento adicional e você vai cair na interface de gerencia dele, algo como:
Chose an option:
add <command>
del <id>
edit <id <new-command>
quit
license
:
Para adicionar um comando na lista, basta digitar: : add ssh user@servidor -p porta
Em seguida esse comando vai automaticamente aparecer na lista de comandos disponíveis:
Chose an option:
0: ssh user@servidor -p porta
add <command>
del <id>
edit <id>
Lembrando que o comando pode ser qualquer coisa que esteja no seu $PATH e o "cd" (que faz parte do shell -seja bash, sh, ksh, etc-)
Para remover um comando da lista, basta digitar "del 0", ou o número do comando listado.
Caso queira modificar um comando, masta digitar "edit 0 comando novo".
Para executar um atalho, basta digitar no shell:
$ goto 0
E ele automaticamente vai executar o comando programado.
P.S.: Essa ideia não foi minha, ela foi kibada de um script que o Ulisses fez.
Esses dias estava precisando converter conteudo HTML em PDF em uma aplicação Python. Ja conhecia o ReportLab, porém é necessário alguns parsers para que as tags html sejam "traduzidas" para o pdf, que podem ser feitos utilizando SGMLlib. A solução mais simples foi utilizar o os com o HTMLDoc utilizando o próprio bash.
A instalação no Ubuntu 7.10 é simples:
[code]
$ sudo aptitude install htmldoc
[/code]
Para outras distribuições existem RPMs para a instalação, além de se poder instalar a partir do fonte.
Para passarmos um arquivo html para pdf o seguinte comando:
[code]
$ htmldoc --webpage -f arquivo.pdf arquivo.html
[/code]
Desta forma eu acesso o bash através de minha aplicação Python, e retorno o PDF do html desejado.
O PulseAudio é um software que se integra ao seu sistema operacional (também funciona em Windowstm) e permite um controle avançado do som, como definir qual placa de áudio que o software X deve usar e controlar o volume isoladamente do software Y, bem como permite que use placas de som remotas. Continue Reading »
Até 1 semana atrás quando eu precisava executar um comando que eu já tinha rodado, eu apelava pro
history |grep comando
Mas agora aprendi um novo comando (que por vezes eu já havia acessado sem querer), ele é o `CTRL+R`, quando você apertar CTRL+R no terminal irá aparecer escrito algo como (reverse-i-search)`':
Ai basta digitar o que você lembrar do comando e apertar Enter quando encontra-lo, caso você digite o comando e ele não mostre o que você estava procurando, aperte novamente CTRL+R até encontrar o comando certo.
Muita gente assiste a um vídeo e ouve uma música legal nele e pensa: "Que bom seria se eu pudesse pegar esse som e jogar em um MP3", agora eu falo: você pode!!! Claro, desde que você tenha Linux[1], basta instalar o ffmpeg e o mplayer, normalmente o mplayer já vem instalado, se não vier e você usa um debian-like (Ubuntu, Kurumin, e mais uma porrada) basta instalar pelo
aptitude install mplayer
aptitude install ffmpeg
Se você usa Fedora use o gerenciador de pacotes dele e instale o mplayer e o ffmpeg, se você não usa nenhum dos 2 tipos de linux então você gosta de sofrer (just like me) e pode instalar direto pelo fonte. Continue Reading »
Cansado de fechar abas no Firefox por engano?
Cansado de ter que clicar com o botão direito e clicar em "Undo close tab" (ou seus idiomas derivados)?
Seu problemas acabaram!!
Com o método descrito nesse post você nunca mais vai precisar se enfurecer com isso!
E mais!! Se você for uma das 5'000'000 primeiras pessoas a clicar no titulo desse post, vai levar totalmente de graça e sem custos adicionais o micro-tutorial de como implementar essa incrível maravilha do mundo Open Souce!
Clique Já!!
Atenção esse tutorial é baseado na distribuição linux Ubuntu 7.04 com Firefox 2.0, se você fez isso com outra plataforma/versão, me informe pra eu atualizar Continue Reading »
Enlightenment é uma ótima interface gráfica (eu uso ), que pode ser instalada no seu Ubuntu, e outros sistemas Linux.
Apesar dos inúmeros efeitos: Papel de Parede que se movimentam, janelas que correm para o lado da tela quando se muda de desktop, widgets de temperatura da cpu... ela é leve, funciona em máquinas menos potentes (infelizmente é o meu caso). Tem código totalmente remodulado, próprio, e apesar desse fato, carrega tranquilamente aplicações do Gnome e do KDE.
Esses dias tive que implementar algumas coisas em C, por dois motivos, primeiro eu queria comparar a velocidade da mesma aplicação em duas linguagens (Python e C) e segundo, já estava na hora de começar a usar C com Python .
Os primeiros testes que fiz (com a ajuda do Gean) foi usando a documentação oficial do Python que pode ser encontrada aqui. Foi relativamente fácil e não tive muitos (mais do que nenhum) problemas.
Porém a perfomance não era a esperada, então parti para outros testes, e um desses foi exatamente sobre a biblioteca ctypes. Atualmente ela é um pacote "third-part" (feito por terceiros), porém, será builtin na versão 2.5 Continue Reading »