quinta-feira, dezembro 20, 2007

Tela preta na inicialização do Ubuntu Gutsy

Quando instalei meu Ubuntu Gutsy ele tava com um bug meio chato, quando inicializava não aparecia a famosa logo do com a barrinha carregando, mas ficava tela preta por bastante tempo, até aparecer a tela de login. Então eu simplesmente apertava ALT + F1, e ali em modo texto ele inicializava mais rápido.

Mas um dia desses decidi procurar resolver isso, e é realmente bem simples (na verdade o primeiro resultado no google :-) ). Primeiro é preciso editar o arquivo usplash.conf:

sudo gedit /etc/usplash.conf

que provavelmente deve estar assim

# Usplash configuration file
xres=1280
yres=1024

e no meu caso, com tela de 15'4'', eu atualizei pra isso

# Usplash configuration file
xres=1280
yres=800

depois basta atualizar o tema, que é o simbolo do Ubuntu e a barrinha carregando

sudo update-usplash-theme usplash-theme-ubuntu

e pronto!

quarta-feira, dezembro 12, 2007

Renomear arquivos

Surgiu a pouco a necessidade de renomear todas imagens de uma pasta, so adicionar um termo no início do nome. E nada como um script em Python pra facilitar sua vida:

import os

for nome in os.listdir('.'):
novo_nome = 'MEET_' + nome
os.rename(nome, novo_nome)
print 'OK'

quarta-feira, dezembro 05, 2007

Configurando o Gedit

Gosto de usar o Gedit pra programar, inicialmente ele parece ser bem simples, mas pode-se adicionar alguns plugins, basta ir em Edit -> Preferences -> Plugins e escolher. Também tem um pacote no apt-get, o gedit-plugins, que trás alguns adicionais, como auto-completa de chaves, parêntesis, aspas, etc, comentário de um bloco de comandos. Mas aqui tem vários outros bem interessantes, principalmente pra quem programa em Python.

Um bem legal é o Python Outline, que mostra todo o
outline do código no painel lateral. Outro interessante é o Better Python Console, que permite executar o código Python apertando f5, como no IDLE.

Quem é desenvolvedor web, vai gostar do Browser Preview. Tem o Word Completion, que permite auto-completa de palavras que já foram digitadas no documento. O ideal seria ele mostrar os métodos e atributos do objeto, mas esse ainda está na seção de "Requested Plugins", assim como um Debugger pra Python.

É bem fácil instalar novos plugins, normalmente é um arquivo .py e um .gedit-plugin, basta copiá-los para o diretório /usr/lib/gedit-2/plugins e reiniciar o Gedit. Pronto, é so escolher e usar.

UPDATE
Esse artigo tem umas dicas legais também

domingo, dezembro 02, 2007

Enviando e-mails com smtplib

O protocolo SMTP é utilizado para enviar e-emails. E Python possui um módulo embutido, o smtplib, que facilita o envio de e-mails utilizando esse protocolo, e é bem facil de usar:

>>> import smtplib
>>> server = smtplib.SMTP('gmail-smtp-in.l.google.com', 25)
>>> para = 'v2.igor@gmail.com'
>>> de = 'ninguem@nada.com'
>>> msg = '''
... From: ninguem@nada.com
... To: v2.igor@gmail.com
... Subject: Nao eh nada nao
... Aqui eh o corpo da mensagem
... '''
>>> server.sendmail(de, para, msg)
{}
>>> server.close()

A classe SMTP do módulo smtplib serve para se conectar com um servidor de e-mails, caso você tenha um servidor de email rodando localmente, basta usar "localhost". E 25 é a porta padrão do SMTP.

A mensagem de e-mail tem um formato padrão que está definido aqui. Mas os campos mais comuns são:

To: E-mail dos destinatários
Cc: E-mail das pessoas que devem receber uma cópia da menssagem
From: E-mail do criador da mensagem
Subject: Assunto da mensagem
Date: Data e hora em que a mensagem foi enviada

Como se pode perceber, o cabeçalho das mensagens fica no formato Chave: valor... O unico dado que não tem uma chave é o corpo da mensagem em si. A classe Message do módulo email ajuda a formatar essa mensagem:

>>> from email.Message import Message
>>> msg = Message()
>>> msg['Subject'] = 'Assunto do email'
>>> msg.set_payload('Aqui eh o corpo da mensagem')
>>> print msg
From nobody Sun Dec 2 16:29:56 2007
Subject: Assunto do email

Aqui eh o corpo da mensagem


Os valores do cabeçalho podem ser adicionados como na sintaxe de um dicionário do Python, e o método set_payload() serve para adicionar a mensagem.

Ah, e caso no exemplo acima o email não chegue na sua caixa de entrada do gmail, não se esqueça de verificar nos "Spams".