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.

Clique aqui e leia mais…

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.

Clique aqui e leia mais…

Emulando o Maemo (Diablo) no N800 com o Qemu

Como descrito no post anterior, o suporte do Qemu ao hardware do N800 permite emulá-lo. Vamos dar uma olhada nisso… ;-)

Emulando o N800 e rodando o OS 2008 (Diablo)

Clique aqui e leia mais…

Breve análise do N800

Resolvi comprar numa promoção do Submarino.com.br um N800 para dar de presente a minha mãe no dia das mães. Enquanto o dia “oficialmente” não chega, vou publicar algumas coisas que andei brincando.

Tela do Os 2008

Tela do OS 2008

Clique aqui e leia mais…

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.

Clique aqui e leia mais…

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:

Clique aqui e leia mais…

Qual seu gerenciador de pacotes?

Basicamente o que distingue uma distribuição GNU/Linux é a maneira como os programas são instalados ou removidos. Eis alguns exemplos :

  • yum – gerencia e instala os pacotes no Fedora (extensão .rpm)
  • apt – cuida dos pacotes no Debian, Ubuntu, Knoppix, Kurumin etc (extensão .deb)
  • pacman – utilizado no Arch Linux
  • emerge -  do sistema Portage, que compila e instala os pacotes no Gentoo.

Clique aqui e leia mais…

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.

Clique aqui e leia mais…

Montando imagens JFFS2

Partições em JFFS2 são encontradas em um vasto número de sistemas embarcados. Esse post mostra como montar uma imagem JFFS2 na própria RAM. Muito útil para analisar seu conteúdo de firmwares.

Clique aqui e leia mais…