Mudança

Como vocês podem perceber, o EscovandoBits não publica algo há algum tempo. Desde o começo do blog, lá do tempo sobre as notícias do Campus Party 2008, muita coisa aconteceu, as atividades mudaram, a faculdade, trabalho, etc; tudo de certa forma refletiu (ou não) por aqui. Continuo com projetos e tentando escrever, mas outro espaço, este agora fica aqui para fins históricos.

Para quem quiser acompanhar ainda o que eu escrevo, atualizem os feeds e bookmarks. O Mauro ainda não decidiu um lugar para escrever, mas quem quiser pode segui-lo no twitter.

www.coding.com.br (rss)

Anúncios

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

VMWare ESX

Ainda não testei num hardware apropriado… mas hoje quando fiz um teste rápido com com o VMware ESXi no QEmu percebi que ele detectou “aonde” estava rodando.

6. VMware ESX

Para ver mais screenshots clique aqui.

Continue lendo

Organizando o processo de compilação

Esse post irá mostrar uma pequena dica para quem deseja começar a testar programas de terceiros de uma forma organizada, de modo a preservar os “originais” do sistema e permitir isolar as versões.

Continue lendo

Motorola 6800 – Divisão Inteira

O Motorola 6800 não possui uma instrução específica para divisão de dois números. Uma solução simples é fazer a divisão através de múltiplas subtrações. Contudo, podemos pensar mecanismos mais eficientes. Uma solução  esta descrita no código-abaixo. Esse algoritmo é mais eficiente na maiora dos casos, pois com apenas 8 deslocamentos efetua a divisão de dois números de 8 bits.

Continue lendo

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

Exemplos do uso syscalls (x86) do Linux

Hoje tive uma idéia ao ler um artigo intitulado How Compiling Works no qual o autor descreve em linhas gerais, mas de uma maneira interessante, o processo de compilação de um código escrito em C (abordando  o processo de linkagem com as bibliotecas) tomando como exemplo a função printf. Resolvi fazer uma brincadeira, mostrando como isso pode ser realmente implementado na prática, usando chamadas de sistema (syscalls) do Linux, de modo que não seja necessário usar a implementação disponível na glibc.

Continue lendo