Conversão de base no Python

Lembrete para conversão de base no Python, a primera coluna é o valor de entrada e a primeira linha o valor de saída.

Hexadecimal

Binário

Octal

Decimal

Hex:

bin(0x<num>)

oct(0x<num>)

int(0x<num>)

Bin:

hex(0b<num>)

oct(0b<num>)

int(0b<num>)

Octal:

hex(0o<num>)

bin(0o<num)

int(0o<num>)

Dec:

hex(<num>)

bin(<num>)

oct(<num>)

Pode-se converter para outras bases entre 2 e 36 utilizando int(<numero>,<base>), exemplo:

>>> print int('g',18)
16

Timer no PyQT

Quem programa em Python provavelmente já precisou fazer alguma coisa com threads. Contudo quando estamos trabalhando com PyQT há alguns incovenientes em utilizar as threads da API do Python, principalmente quando temos interfaces gráficas. Recentemente tive problemas para fazer uma função que executasse determinada ação após um tempo pré-definido em segundos. Pois quando enquanto a thread não terminasse sua execução a janela gráfica não aparecia.  Encontrei duas maneiras para solucionar,  a primeira utilizando QThread e uma muito mais simples usando QTimer,  fica o registro das duas maneiras:

Continue lendo

Dicas para economia da bateria em notebooks

Conheço casos de amigos com notebooks novos, que depois de pouco tempo de uso (aprox. 1 ano) precisaram efetuar a troca da bateria pois esta não segurava mais carga alguma, dava uma autonomia de cerca de 15 minutos. Portanto recomendo duas medidas de prevenção.

  1. Quando utilizar o computador ligado a rede elétrica, retire a bateria do notebook.
  2. Pelo menos uma vez no mês, utilize a bateria até o fim e deixe uma noite inteira carregando.

Você tem alguma dica? Sugira aqui nos comentários.

Continue lendo

Análise de performance da linguagem Python em plataformas x86 e ARM

Este post apresenta um artigo, feito para a disciplina de Análise de Algoritmos, onde comparei a performance, utilizando a linguagem Python, de dois algoritmos de ordenação (bubble sort e quick sort) em duas plataformas, em outras palavras, no meu computador Intel Pentium 4 (x86) e no meu smartphone Nokia E62 (ARM). O texto traz os tempos gastos para ordenar vetores preenchidos com números aleatórios, de diferentes tamanhos. Tudo isso com a vantagem de poder utilizar o mesmo código-fonte (sem alteração alguma) para fazer os testes nos dois. É claro que perdi em performance não usando C ou C++, mas ganhei em portabilidade para pode fazer rapidamente esse teste. Se interessou, faça do download do pdf arm_vs_x86.pdf

Se você tem interesse em rodar o Python no seu smartphone (em especial os da Série 60 da Nokia) acesse: http://wiki.opensource.nokia.com/projects/PyS60

Dicas de PyQt4

Esse post irá apresentar alguns processos de desenvolvimento utilizando PyQt através da construção de um aplicativo simples e sua evolução. Algumas dicas como utilizar o designer para fazer as telas e layouts e integrá-lo no seu código-fonte, o casamento com expressões regulares, sinais, widgets gráficos (lineEdits, labels, comboBox, etc), arquivos, processos, strings…

qt.gif

Continue lendo