Archive for the ‘python’ Category

Python é escolhida como melhor linguagem por três anos seguidos

No Comments »

Na votação feita entre os leitores do Linux Journal, Python foi escolhida como melhor linguagem de programação pela terceira vez consecutiva. E não só isso, disputando também a categoria de melhor linguagem de script, também ficou em primeiro lugar, à frente de Bash!

Python ainda é uma linguagem que se usa por opção e não imposição. Como foi bem descrito neste artigo:

Eu não escuto as pessoas dizerem “Eu uso Python no trabalho porque eu tenho de usar, mas eu preferia estar programando em Java!” Mas frequentemente escuto as pessoas dizerem que gostariam de usar Python no trabalho se pudessem.

 


Python chega à versão 3.1

No Comments »

Lançada no dia 27 de junho, a versão 3.1 do Python. Traz as seguintes melhorias:

  • Novo tipo para dicionário ordenado
  • Várias otimizações no tipo int
  • Novas funcionalidades do unittest
  • Um modulo  io muito mais rápido
  • Nova sintaxe para declarações with aninhadas

Informações adicionais podem ser obtidas nos links:


Treinamento de Gerência de Configuração de Software em São Paulo em janeiro de 2009

No Comments »

Acontecerá em São Paulo, em janeiro de 2009, a próxima turma do curso de Gerência de Configuração de Software com Ferramentas Open Source Trac e Subversion.

É um curso extenso. São 32 horas de treinamento necessárias para cobrir com profundidade o processo e a operação das ferramentas de forma a resolver completamente o problema de Gerência de Configuração de Software de sua equipe de desenvolvimento.

Para mais informações sobre preço, local e inscrições, consulte os links a partir do calendário de eventos:

Faça já sua inscrição! Vagas limitadas!


Lançado o Trac 0.11.1

2 Comments »

Foi lançada a versão 0.11.1 do Trac contendo algumas correções e pequenas melhorias (veja em detalhes a relação das modificações).

Para obter a versão mais atual é bastante simples. Uma vez que o Trac agora é disponibilizado através do setuptools (gerenciador de pacotes do Python), não é necessário esperar a próxima versão da distribuição Linux para atualizar o servidor tal como acontece com o Subversion, por exemplo. O comando de atualização é:

easy_install -U Trac

Script Simples de Backup do Servidor Trac e Subversion

4 Comments »

Existem várias estratégias possíveis de backup do servidor do Trac e do Subversion, mas executar o backup diretamente sobre os repositórios não é a melhor alternativa. Para os repositórios do Subversion usando o formato FSFS, um backup direto até funciona, mas para o Trac, que usa um banco de dados internamente, o backup pode acabar pegando o banco de dados em um estado intermediário e depois haverá problemas para restaurá-lo.

A estratégia usada no script mostrado neste artigo é criar uma cópia dos repositórios em um lugar específico e aí sim, esse lugar específico deverá usado para fazer o backup total dos repositórios.

Tanto o Trac quanto o Subversion possuem comandos administrativos para criar uma hotcopy, isto é, uma cópia do repositório enquanto o original ainda está em uso. Este comando executa automaticamente todo o procedimento para eliminar quaisquer inconsistências que poderiam ser produzidas durante a cópia de um repositório em uso.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import shutil

def limpa_diretorio_backup(diretorio):
    if os.path.exists(diretorio):
        print 'rm -rf %s' % diretorio
        shutil.rmtree(diretorio)
    print 'mkdir %s' % diretorio
    os.mkdir(diretorio)

def hotcopy(diretorio_origem, diretorio_destino, comando_hotcopy):
    limpa_diretorio_backup(diretorio_destino)
    for nome_repos in os.listdir(diretorio_origem):
        caminho_repos = os.path.join(diretorio_origem, nome_repos)
        if not os.path.isdir(caminho_repos):
            continue
        destino_repos = os.path.join(diretorio_destino, nome_repos)
        print comando_hotcopy % (caminho_repos, destino_repos)
        os.system(comando_hotcopy % (caminho_repos, destino_repos))

diretorio_repos_svn   = '/srv/svn'
diretorio_backup_svn  = '/srv/backup/svn'
svnadmin_hotcopy      = 'svnadmin hotcopy %s %s'

diretorio_env_trac    = '/srv/trac'
diretorio_backup_trac = '/srv/backup/trac'
trac_admin_hotcopy    = 'trac-admin %s hotcopy %s'

hotcopy(diretorio_repos_svn, diretorio_backup_svn, svnadmin_hotcopy)
hotcopy(diretorio_env_trac, diretorio_backup_trac, trac_admin_hotcopy)