Esse problema na realidade não é do Django, e sim do módulo psycopg2 que faz acesso ao PostgreSQL (No meu caso eu estava utilizando a versão 2.0.6 deste módulo). Para resolver este problema é preciso atualizá-lo para o 2.0.7.

Leia Mais »

Ao tentar empacotar um projeto com o Maven o danado sempre dava erro dizendo que não conseguia baixar as dependências do meu projeto.

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.2/maven-resources-plugin-2.2.pom
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

GroupId: org.apache.maven.plugins
ArtifactId: maven-resources-plugin
Version: 2.2

Reason: Unable to download the artifact from any repository

org.apache.maven.plugins:maven-resources-plugin:pom:2.2

from the specified remote repositories:
central (http://repo1.maven.org/maven2)

O arquivo existia no repositório e eu já estava ficando louco achando que era algum problema com proxy ou coisa do gênero. Foi quando eu resolvi verificar com mais cuidado o arquivo settings.xml que eu havia acabado de copiar.

Resultado: O problema é que meu “localRepository” estava apontando para um local em que meu usuário não tinha permissão de escrita. E se eu dependesse das mensagens do Maven para descobrir isso…

Um recurso bacana da linguagem Python que facilita a vida um bocado e deixa o código mais legível são os Decorators. O seu uso é bem simples e sua implementação também.

Para mais informações dê uma olhada nesta página (foi a melhor referência que eu encontrei):

http://www.python.org/dev/peps/pep-0318/

Um exemplo:

import time
def imprime_tempo(func):
    def decorator(*arg, **kwargs):
        t1 = time.time()
        result = func(*arg, **kwargs)
        t2 = time.time()
        print '%s levou %0.3f ms' % (func.func_name, (t2-t1)*1000.0)
        return result
    return decorator
@imprime_tempo
def minha_funcao(x):
    print 'testando'
    x = x**2

Criei este exemplo com base no que está em:

http://www.daniweb.com/code/snippet368.html

Outro link:

http://www.phyast.pitt.edu/~micheles/python/documentation.html

Neste site são apresentados alguns problemas no uso de Decorators (basicamente a alteração da assinatura da função) e uma solução para o problema

Para converter uma imagem do formato Bin/Cue para ISO basta usar o programa bchunk. Ele está disponível para instalação através do APT-GET no Ubuntu. Seu uso é através da linha de comando e é bem simples:

bchunk ARQUIVO.BIN ARQUIVO.CUE NOVOARQUIVO.ISO

Dica retirada daqui.

Para criar um arquivo SQL com os inserts de uma base de dados do PosgreSQL (versão 8.3) execute o comando:

# pg_dump -i -h localhost -p 5432 -U <usuário> -F p -a -D -v -f “<nome do arquivo>.sql” -t ‘<schema>.*’ <database>

o executável normalmente se localiza em /usr/local/pgsql/bin/

Diagnóstico: No admin do Django é exibida a mensagem “Please correct the errors below.” mas nenhum campo possui erro. Este problema acontece quando temos relacionamentos inline.

Forma de resolver: Aplicar o patch que está em http://code.djangoproject.com/attachment/ticket/9076/inline_queryset.diff

Tive este problema hoje ao tentar compilar o kernel do Gentoo no meu note velho (a bateria da BIOS do coitado foi para o saco). Depois de fuçar um monte na net achei esse meio de resolver o problema:

# make clean
# touch /tmp/teste
# find . -newer /tmp/teste -print -exec touch {} \;
# rm /tmp/teste

e depois é só utilizar o bom e velho:

# make && make modules_install

Eu achei a solução do problema em http://www.experts-exchange.com/OS/Linux/Setup/Q_10127797.html

Problema: alterar o locale do usuário para ISO8859-1 (poderia ser qualquer outro).

Solução: Edite o arquivo .bashrc e inclua as linhas:

export LANG=en_US.iso8859-1
export LC_CTYPE="en_US.iso8859-1"
export LC_NUMERIC="en_US.iso8859-1"
export LC_TIME="en_US.iso8859-1"
export LC_COLLATE="en_US.iso8859-1"
export LC_MONETARY="en_US.iso8859-1"
export LC_MESSAGES="en_US.iso8859-1"
export LC_PAPER="en_US.iso8859-1"
export LC_NAME="en_US.iso8859-1"
export LC_ADDRESS="en_US.iso8859-1"
export LC_TELEPHONE="en_US.iso8859-1"
export LC_MEASUREMENT="en_US.iso8859-1"
export LC_IDENTIFICATION="en_US.iso8859-1"
export LC_ALL="en_US.iso8859-1"

Nota:

  • Verificar se existe chamada ao script .bashrc à partir do .bash_profile. se não existir adicionar a linha:
    source ~/.bashrc


Problema:

Você possui diversos domínios hospedados em um servidor Apache e deseja que todos eles sejam redirecionados para um outro domínio.

Solução:

Utilizar o mod_rewrite do apache com as seguintes condições e regra:

RewriteCond %{HTTP_HOST} ^dominio1.com(.*)      [OR]
RewriteCond %{HTTP_HOST} ^www.dominio1.com(.*)  [OR]
RewriteCond %{HTTP_HOST} ^outrodominio.com(.*)  [OR]
RewriteCond %{HTTP_HOST} ^paraquetantodominio.com(.*)
RewriteRule ^/(.*) http://www.dominioprincipal.com/$1   [L,R=301]

Notas:

  • Os domínios dominio1.com, www.dominio1.com, outrodominio.com e paraquetantodominio.com devem estar configurados em ServerAlias
  • O (.*) é uma expressão regular (ER) que funciona como um coringa: deste ponto em diante a URL pode possuir qualquer seqüência de caracteres e ainda assim a condição será válida.
  • O $1 na linha RewriteRule diz ao Apache para completar o caminho do domínio.  Na verdade ele copia os caracteres que foram substituidos pela expressão regular  (.*) que está em ^/(.*) para frente do novo caminho.
  • O [L,R=301] significa:
    L : Não execute outra regra, esta é a última
    R=301 : Retorne ao usuário o código de status HTTP 301 (Moved Permanently).  Outros códigos HTTP e mais informações podem ser encontrados aqui. Se você utilizar apenas R o código que será enviado será o 302 (Moved Temporarily).
  • Recomendo a leitura da página da Apache sobre o mod_rewrite.

Para criar um novo projeto em Django execute o comando:

django-admin startproject <nome projecto>

com isso será criada a seguinte estrutura:

mysite/
    __init__.py
    manage.py
    settings.py
    urls.py

continua…