Monday, March 2, 2009
Smaps-Plotter no br-linux
Labels:
br-linux,
linux,
smaps,
smaps-plotter
Acabei de anunciar no br-linux o Smaps-Plotter, espero que aumente o número de usuários e contribuidores.
Sunday, February 8, 2009
Sincronizando telefone celular com o evolution
Labels:
6125,
celular,
debian,
linux,
motorola,
multisync,
n82,
n95,
nokia,
opensync,
s40,
s60,
sincronização,
sonyericsson,
symbian,
sync,
ubuntu
Recentemente precisei sincronizar os dados do meu celular com o computador e então fui atrás de como fazer isso. Encontrei vários posts que ensinavam como fazer a sincronização, mas não obtive sucesso, até anteontem.
O seguinte processo foi feito em um computador com Ubuntu Intrepid instalado.
Obtendo informações e instalação de pacotes
1. Pegando o mac address do seu celular.
3. Instalando os pacotes necessários.
Configurando e sincronizando
1. Nomeando a sessão e adicionando o plugin pra sincronizar com o evolution. Você pode chamar a sua sessão do que mais lhe for conveniente.
Existe ainda a possibilidade de configurar e sincronizar utilizando a ferramente gráfica, multisync0.90.
Fonte: Ubuntu Forums
O seguinte processo foi feito em um computador com Ubuntu Intrepid instalado.
Obtendo informações e instalação de pacotes
1. Pegando o mac address do seu celular.
$ hcitool scan2. Pegando informações sobre os canais do bluetooth.
Scanning ...
XX:XX:XX:XX:XX:XX Nokia
$ sdptool browse XX:XX:XX:XX:XXVai aparecer um bocado de coisa, então você deve fazer um scroll buscando por um bloco semelhante a este.
Service Name: SyncML ClientNote que marquei com negrito as informações relevantes.
Service RecHandle: 0x1000e
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 11
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
3. Instalando os pacotes necessários.
$ sudo aptitude install multisync-tools multisync0.90 opensync-plugin-evolution opensync-plugin-syncml
Configurando e sincronizando
1. Nomeando a sessão e adicionando o plugin pra sincronizar com o evolution. Você pode chamar a sua sessão do que mais lhe for conveniente.
$ msynctool --addgroup evolution-61252. Configurando a sessão.
$ msynctool --addmember evolution-6125 evo2-sync
$ msynctool --configure evolution-6125 1Um editor de texto aparecerá com o conteúdo abaixo. Não é preciso alterar nada, basta salvar.
<config>3. Adicionando o plugin para sincronizar o telefone via bluetooth
<address_path>default</address_path>
<calendar_path>default</calendar_path>
<tasks_path>default</tasks_path>
</config>
$ msynctool --addmember evolution-6125 syncml-obex-client4. Configurando o plugin de comunicação com o telefone
$ msynctool --configure evolution-6125 2Aqui você insere as informações obtidas no item 2 da seção anterior.
<config>5. Agora é só sincronizar \o/
<bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address>
(...)
<bluetooth_channel>11</bluetooth_channel>
(...)
</config>
$ msynctool --sync evolution-6125
Existe ainda a possibilidade de configurar e sincronizar utilizando a ferramente gráfica, multisync0.90.
Fonte: Ubuntu Forums
Tuesday, December 16, 2008
Capa do livro
A capa do livro já está disponível!
http://www.wiley.com/WileyCDA/WileyTitle/productCd-047043676X.html
http://www.wiley.com/WileyCDA/WileyTitle/productCd-047043676X.html
Tuesday, July 15, 2008
Novo blog
Ola!
Tempos atrás entrei numa paranóia de criar meu próprio gerenciador de blog em django e acabei criando. O gerenciador é baseado no PyLucid. Fiz uma série de modificações e adicionei mais um bocado de features.
O endereço do novo blog é http://rbelem.info/. Vou ficar postando nos dois, pois percebi que já existem algumas referências a este blog.
Tempos atrás entrei numa paranóia de criar meu próprio gerenciador de blog em django e acabei criando. O gerenciador é baseado no PyLucid. Fiz uma série de modificações e adicionei mais um bocado de features.
O endereço do novo blog é http://rbelem.info/. Vou ficar postando nos dois, pois percebi que já existem algumas referências a este blog.
Monday, June 4, 2007
Minhas fotos no IV ESLAM
Labels:
eslam,
free software,
software livre
Tuesday, May 29, 2007
IV ESLAM - Mini-curso de Python
Nesse ESLAM tive o prazer de ser convidado para ministrar o Mini-curso de python. Não tenho certeza se o mini-curso foi 100%, mas penso que deu para os participantes terem uma idéia de como o python funciona. Vou passar aqui a lista de sites recomendados que prometi.
- Python Brasil
- http://www.pythonbrasil.com.br/moin.cgi
- Python Wiki
- http://wiki.python.org/moin/
- Documentação oficial
- http://docs.python.org/
- PEPs - Python Enhancement Proposals
- Style Guide for Python Code - http://www.python.org/dev/peps/pep-0008/
- Python side-bar
- http://www.edgewall.org/python-sidebar/
- Documentação extra-oficial
- http://www.effbot.org/zone/index.htm
- http://www.brpreiss.com/books/opus7/
- Quick Reference
- http://rgruet.free.fr/#QuickRef
- Python na prática
- http://www.async.com.br/projects/python/pnp/
- Comunidade
- http://planet.python.org/
- http://www.pythonbrasil.com.br/planet/
- Cookbook
- http://www.java2s.com/Code/Python/CatalogPython.htm
- http://www.activestate.com/ASPN/Python/Cookbook/
- http://www.phys.uu.nl/~haque/computing/WPark_recipes_in_python.html
- http://wiki.python.org/moin/NumericAndScientificRecipes
- Repositório de aplicações e bibliotecas
- http://cheeseshop.python.org/pypi
- Posters
- http://geekciphers.com/python-posters.html?gclid=CL3J3IrriooCFRTtPgodpV-BRA
- Design Patters
- http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html
- http://www.thinkware.se/cgi-bin/thinki.cgi/PythonPatterns
Monday, April 30, 2007
Que linguagem de programação eu sou?
Vendo os posts de várias pessoas, percebi que praticamente todos fizeram o quiz "Which Programming Lanuguage Are You?", resolvi fazer também e o resultado foi:
Which Programming Language are You?
\o/
Which Programming Language are You?
\o/
Friday, April 27, 2007
Mudando permissões de arquivos e diretórios
Labels:
dev,
devel,
development,
file permission,
permissão de arquivos,
python,
script,
scripting
Alguns dias atrás tive que mudar as permissões de um diretório contendo muitos sub-diretórios e arquivos (com toda certeza eu não iria fazer isso na mão :-D), resolvi então escrever um pequeno script para fazer esse trabalho. Falta ainda colocar o módulo optparse ou semelhante pra trabalhar os dados recebidos como parâmetro da linha de comando.
#!/usr/bin/env python
"""
Change directory and file permission recursively.
"""
import os
def changepermission(directory, dirperm, fileperm):
"""
This function change dir and file permission recursively.
e.g.: changepermission(/home/user, 0775, 0664)
"""
abspath = os.path.abspath(directory)
for item in os.listdir(abspath):
if os.path.isfile(abspath + '/' + item):
os.chmod(os.path.join(abspath, item), fileperm) elif os.path.isdir(abspath + '/' + item):
os.chmod(os.path.join(abspath, item), fileperm) changepermission(abspath + '/' + item, dirperm, fileperm)
if __name__ == '__main__':
changepermission('/path/to/directory', '775', '664')Problemas com dbus
Passei esses tempos tentando resolver um problema no pydistcc relacionado ao dbus. Procurei a lista do python-brasil, existe uma solução aparente em C, mas quero saber se existe como resolver isso usando somente python. Alguem sabe?
Friday, March 30, 2007
PyDistcc status
Labels:
code,
coding,
compilação,
compilação distribuida,
compiling,
debian,
distcc,
distributed compiling,
gcc,
linux,
programming,
pydistcc,
python,
ubuntu
Aproveitando que estou por aqui ... :-)
Após o início do projeto, consegui evoluir um pouco mais o código. Ele já está anunciando o serviço na rede e o daemon cliente já consegue listar os servidores anunciados ;-) Estou atualmente trabalhando no código para gerar os dados de cpu load, cpu queue lenght, network load e outras. O próximo trabalho é terminar a interface cliente com o usuário e conectá-la ao daemon cliente via dbus.
Caso queria contribuir ou somente olhar, o projeto está hospedado no sourceforge no endereço http://sourceforge.net/projects/pydistcc/.
Após o início do projeto, consegui evoluir um pouco mais o código. Ele já está anunciando o serviço na rede e o daemon cliente já consegue listar os servidores anunciados ;-) Estou atualmente trabalhando no código para gerar os dados de cpu load, cpu queue lenght, network load e outras. O próximo trabalho é terminar a interface cliente com o usuário e conectá-la ao daemon cliente via dbus.
Caso queria contribuir ou somente olhar, o projeto está hospedado no sourceforge no endereço http://sourceforge.net/projects/pydistcc/.
Resposta aos comentários de um post no BR-Linux
Labels:
br-linux
O artigo em questão é "O que dá pra comprar com o dinheiro do windows Vista".
Quero deixar bem claro que existem outros meios mais simples de configurar, vídeo, teclado[1][2], seja lá o que for. Os metódos apresentados neste blog, em geral, são a maneira mais difícil, pois gosto de entender como as coisas funcionam. Outra coisa... nem todo usuário avaçado é programador e nem todo programador é usuário avançado. :-P
Quero deixar bem claro que existem outros meios mais simples de configurar, vídeo, teclado[1][2], seja lá o que for. Os metódos apresentados neste blog, em geral, são a maneira mais difícil, pois gosto de entender como as coisas funcionam. Outra coisa... nem todo usuário avaçado é programador e nem todo programador é usuário avançado. :-P
Wednesday, March 7, 2007
xterm default config
Labels:
config,
configuration,
debian,
default,
font,
linux,
monospace,
terminal,
ubuntu,
x-terminal-emulator,
Xdefaults,
xterm
Venho utilizando o gnome-terminal faz alguns anos. Sempre tive vontade de usar o xterm, mas nunca tive paciência de configurá-lo. Hoje, depois de alguns problemas com o gnome-terminal resolvi dar essa chance ao xterm.
Para configurar, edite o arquivo ~/.Xdefaults e deixe-o com o conteúdo semelhante ao abaixo.
XTerm*foreground: white
XTerm*background: black
XTerm*saveLines: 1500
XTerm*faceName: monospace
XTerm*faceSize: 12pt;
XTerm*boldFont: monospace
Pra finalizar rode o comando abaixo para carregar as configurações.
xrdb -nocpp -load .Xdefaults
Agora é só rodar o xterm ;-)
Caso queira deixá-lo como terminal padrão do sistema, rode o comando abaixo
sudo update-alternatives --config x-terminal-emulator
e selecione o xterm.
Para configurar, edite o arquivo ~/.Xdefaults e deixe-o com o conteúdo semelhante ao abaixo.
XTerm*foreground: white
XTerm*background: black
XTerm*saveLines: 1500
XTerm*faceName: monospace
XTerm*faceSize: 12pt;
XTerm*boldFont: monospace
Pra finalizar rode o comando abaixo para carregar as configurações.
xrdb -nocpp -load .Xdefaults
Agora é só rodar o xterm ;-)
Caso queira deixá-lo como terminal padrão do sistema, rode o comando abaixo
sudo update-alternatives --config x-terminal-emulator
e selecione o xterm.
Tuesday, March 6, 2007
Resolvendo finalmente o problema do cedilha
Labels:
cedilha,
cedilla,
debian,
enviroment,
keyboard,
locale,
locales,
ubuntu,
us,
us intl,
us-intl,
usintl,
xorg,
xorg.conf
Desde que reinstalei meu computador, não tenho usado o c cedilha. Toda a configuração feita anteriormente foi perdida e eu tambem não lembrava como era. Revoltado com a situação resolvi ir atrás da solução e registrar aqui para futuras consultas.
Primeiro é necessário configurar o /etc/X11/xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
Option "XkbVariant" "intl"
EndSection
O /etc/enviroment:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
#LANG="en_GB"
Primeiro é necessário configurar o /etc/X11/xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
Option "XkbVariant" "intl"
EndSection
O /etc/enviroment:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
#LANG="en_GB"
LC_CTYPE="pt_BR.UTF-8"
LANG="pt_BR.UTF-8"
LANGUAGE="en_GB:en"
Para mim isso foi o suficiente ;-)
LANG="pt_BR.UTF-8"
LANGUAGE="en_GB:en"
Para mim isso foi o suficiente ;-)
Trocando o idioma padrão do Ubuntu Feisty ou Edgy
Labels:
default,
edgy,
feisty,
idioma,
language,
locale,
localeconf,
localedef,
locales,
padrão,
ubuntu
Após muito tempo gasto em busca de como trocar o idioma padrão do Ubuntu Feisty ou Edgy, pois o localeconf não funciona mais, encontrei um blog que realmente tem a solucão. Resume-se em:
- instalar o idioma desejado, ex. aptitude install language-support-en
- adicionar ao /etc/enviroment, caso não exista:
- LANG="en_GB"
- LANGUAGE="en_GB:en"
- deletar o arquivo /etc/locale.gen
- sudo dpkg-reconfigure locales
- reiniciar o computador
- digitar no terminal locale para verificar o novo idioma padrão
Friday, February 23, 2007
Ubuntu Feisty + beryl + ati x200
Há alguns meses atrás tentei instalar o compiz e o xgl no meu laptop. Tive muita dor de cabeça e perdi muito tempo, acabou que não funcionou. Hoje gastei quase toda manhã tentado configurar o beryl, o xgl e a minha placa de video, não consegui configurar novamente, mas descobri uma série de fatos:
Como ainda não tenho conhecimento suficiente em C para tentar corrigir o bug, vou só ficar monitorando.
- AIGLX não funciona com drivers proprietários da ati;
- Drivers proprietários da ati não suportam o modo composite;
- O beryl está com um bug que causa segfault, quando utilizado no ubuntu feisty, que roda xorg 7.1
- Os drivers novos da ati fazem a x200 funcionar melhor ;-)
Como ainda não tenho conhecimento suficiente em C para tentar corrigir o bug, vou só ficar monitorando.
Saturday, February 17, 2007
Pyret - Um caçador de regressões
Labels:
code,
coding,
debian,
linux,
programming,
pyret,
python,
qa,
quality assurance,
test,
ubuntu
Estes tempos venho trabalhando em um projeto chamado pyret. Por conta disto venho aprendendo muito e tenho ganhado fluência em python e em seus módulos. Hoje terminei a primeira modificação, na parte servidora da aplicação, e enviei para o autor. Espero que ele aceite e me dê acesso ao cvs ;-)
Friday, February 9, 2007
pysvn - subversion python binding
Labels:
code,
coding,
debian,
free software,
linux,
opensource,
programming,
pysvn,
python,
python-subversion,
python-svn,
software livre,
subversion,
svn,
ubuntu
Depois de muito penar para conseguir fazer um checkout em um servidor subversion com autenticação usando pysvn, hoje finalmente consegui. É um bocado difícil de entender como funciona esse negócio, deveria ser um pouco mais intuitivo. Pra facilitar a vida de quem venha utilizar o pysvn e não queira perder muito tempo pra entender tudo, aqui vai um codigo que fiz. Melhorias são bem vindas.
import os
import sys
import pysvn
class DownloadSubversion(object):
def __init__(self, source, dest, username, password):
self.source = source
self.dest = dest
self.username = username
self.password = password
def callback_ssl_server_trust_prompt(self, trust_data):
'''
trust_data: essa e' uma variavel, um dicionario, passado pelo pysvn
contendo informacoes sobre o certificado ssl do servidor.
Por exemplo: data de expiracao do certificado, empresa
certificadora, nome do responsavel, fingerprint e etc.
'''
#for key,value in trust_data.items():
# print '%s: %s' % (key, value)
#print
answer = 't'
#while answer.lower() not in ['p','t','r']:
# sys.stdout.write( '(P)ermanent accept, (T)emporary accept or (R)eject: ' )
# answer = sys.stdin.readline().strip()
if answer.lower() == 'p':
return True, trust_data['failures'], True
if answer.lower() == 't':
return True, trust_data['failures'], False
return False, 0, False
def callback_getLogin(self, realm, username, password, may_save):
'''
realm: essa variavel eh utilizado pelo pysvn pra informar o endereco do
servidor e o nome do servico, deixe ela ai'. Por exemplo:
"Subversion Repository" at http://111.222.333.444
username: usuario do subversion
password: senha do subversion
may_save: salvar ou nao o usuario e senha
'''
if len(username) == 0:
return False, '', '', False
return True, username, password, may_save
def downloadRepos(self):
client = pysvn.Client()
client.exception_style = 1
client.set_default_username(self.username)
client.set_default_password(self.password)
client.callback_get_login = self.callback_getLogin
client.callback_ssl_server_trust_prompt = self.callback_ssl_server_trust_prompt
if os.access(self.dest + '/.svn', os.F_OK):
client.update(self.dest)
else:
client.checkout(self.source, self.dest)
if __name__ == '__main__':
subversion = DownloadSubversion('https://www.com.br/svnroot/', '.', 'usuario', 'senha')
subversion.downloadRepos()
Comentarios liberados
Hoje a tarde um amigo disse que tentou deixar um comentário no blog, não conseguiu porque era necessário um registro. Logo pensei: "Por isso ninguém nunca comentou nada! :-/"
Para facilitar a vida dos visitantes, deixei os comentários liberados.
Valeu Henry!
Para facilitar a vida dos visitantes, deixei os comentários liberados.
Valeu Henry!
Friday, February 2, 2007
Provas na faculdade
Não farei novas postagens até que as coisas estejam mais tranquilas pela faculdade.
Saturday, January 20, 2007
Python Distcc
Labels:
compilação,
compilação distribuida,
compiling,
debian,
dev,
development,
distcc,
distributed compiling,
linux,
python,
ubuntu,
unix
Ontem a noite terminei de escrever a primeira parte do python-distcc, uma alternativa ao dmucs. Coincidentemente, hoje a tarde encontrei um velho amigo, Leonardo Marques, no gtalk e descobri que ele estava trabalhando em um projeto semelhante, o axdistcc, batemos um papo e decidimos unir as forças. Mais informações podem ser encontradas no wiki[2].
Subscribe to:
Posts (Atom)