Monday, February 27, 2012

I BootCamp OeSC-Livre Xanxerê: Inscrições abertas!

O Grupo de Usuários de Software Livre do Oeste Catarinense, em parceria com a Unoesc Xanxerê, tem o prazer de convidar a todos os interessados para o evento I BootCamp OeSC-Livre Xanxerê, a se realizar no Auditório da Unoesc no sábado dia 10 de Março.

A grade com palestrantes de várias cidades da região já está disponível, e as inscrições estão abertas. Se você é da região, participe! Ajude a divulgar e reforçar a cultura do Software Livre no Oeste Catarinense, participando do OeSC-Livre e prestigiando os nossos eventos!

Friday, February 10, 2012

Números divertidos: 0xAAAAAAAA e seu irmão 0x55555555

Ontem estava começando a ler um livro, chamado Hacker's Delight (hacker no sentido original, fuçador e escovador de bits), meio desconfiado porque ele me foi indicado por um colega que é engenheiro de compiladores (bichos raros e bizarros). Ficava pensando se eu realmente iria gostar de ler sobre centenas de operações curiosas e micro-algoritmos otimizados em um assembly RISC hipotético e aritmética modular (claro que sim).

Eis que no prefácio o livro já me cativou, falando sobre as correções do Guy Steele e sobre os fatores do número hexadecimal 0xAAAAAAAA, que são 2, 5, 17, 257 e 65537. Quem fuça em bits desde pequeno já deve ter ficado intrigado pelo 65537 e pelo 257, e talvez também pelos outros (mas o 2 meio que sobra, veremos o porquê). Observando um pouco os números, e brincando com os comandos factor e bc, eis que percebi que realmente os números 0xAA... e 0x55... (em 8, 16 e 32 bits) são números muito bonitos e divertidos. :)

Comecemos pelo 0xAAAAAAAA mencionado no livro. Sua representação em binário é 10101010101010101010101010101010, e em octal é 25252525252 (que inclusive é um palíndromo). Em decimal dá um 2863311530 chato. Mas agora olhemos os seus fatores 2, 5, 17, 257 e 65537:

    2 = 4 ^ 0 + 1
    5 = 4 ^ 1 + 1
   17 = 4 ^ 2 + 1
  257 = 4 ^ 4 + 1
65537 = 4 ^ 8 + 1

Se não fosse pelo 2 (chato), dava ainda pra fazer outra série mais bonita:

    5 = 2 ^ 2 ^ 1 + 1
   17 = 2 ^ 2 ^ 2 + 1
  257 = 2 ^ 2 ^ 3 + 1
65537 = 2 ^ 2 ^ 4 + 1

Em binário, o 2 fica chato, mas os demais ficam bonitos:

    2 = 10
    5 = 101
   17 = 10001
  257 = 100000001
65537 = 10000000000000001

O legal é que, como este número divertido 0xAAAAAAAA tem 2 (chato) como fator, fica óbvio que teremos outro número bonito e divertido retirando o 2 dos fatores (dividindo por 2, ou deslocando um bit pra direita): 0x55555555. Como tiramos o 2 da história, os fatores ficam 5, 17, 257 e 65537, que são todos números bonitos e dão séries contínuas de exponenciação como visto acima. :)

0x55555555 em binário é 01010101010101010101010101010101 e em octal fica um pouco menos bonito que o seu irmão: 12525252525. Em decimal fica um desinteressante 1431655765. E pra fechar, olhem que massa: as versões menores destes números de 32bits também continuam interessantes, e a série de fatores deles fica interessantíssima!

    fatores de 0x55 = 5 17
  fatores de 0x5555 = 5 17 257
fatores de 0x555555 = 5 17 257 65537

O mesmo acontece com 0xAA, 0xAAAA e 0xAAAAAA, somente adicionando o 2 inicial. :) Pena que indo pra 64bits aí já entram outros fatores menos divertidos.

Update: Acabaram as reuniões do dia. Mais diversão com o bc pra ver que a série continua bem legal:

$ bc
bc 1.06.95
...

2 ^ 2 ^ 5 + 1
4294967297
 
2 ^ 2 ^ 6 + 1
18446744073709551617

obase=16
 
5 * 17 * 257 * (2 ^ 2 ^ 5 + 1)
555500005555
 
2 * 5 * 17 * 257 * (2 ^ 2 ^ 5 + 1)
AAAA0000AAAA
 
5 * 17 * 257 * (2 ^ 2 ^ 5 + 1) * (2 ^ 2 ^ 6 + 1)
5555000055550000555500005555
 
2 * 5 * 17 * 257 * (2 ^ 2 ^ 5 + 1) * (2 ^ 2 ^ 6 + 1)
AAAA0000AAAA0000AAAA0000AAAA
... e assim por diante. :)

Tuesday, February 07, 2012

I BootCamp OeSC-Livre em Xanxerê vem aí!

Me sinto realizado ao ver que está tudo se resolvendo rapidamente para, no sábado dia 10 de março, realizarmos um belo evento do OeSC-Livre no auditório da Unoesc em Xanxerê. :) Já saiu a chamada de trabalhos (até 18/2!), e espero que o pessoal da região submeta palestras interessantes sobre o que andam fazendo com Software Livre.

O que mais me deixa feliz é ver que neste ano vamos finalmente expandir nossos horizontes além da dupla Chapecó-Concórdia, onde o OeSC-Livre já está bem conhecido e tem participado regularmente de eventos e seminários. Está garantido o evento em Xanxerê, e acredito que está bastante certo um evento em São Miguel do Oeste.

Se o OeSC-Livre conseguir manter a regularidade, organizando pelo menos um evento por ano em cada uma dessas quatro cidades, acho que vamos realmente ter um impacto muito positivo na área de tecnologia do Oeste Catarinense. Vamos começando com pequenos eventos, acostumando o pessoal a participar e se ajudar na organização, e então quem sabe em um futuro próximo teremos eventos maiores e com participação muito mais expressiva. :)

Vale lembrar que o OeSC-Livre é um grupo de voluntários, que em geral têm família e trabalho para cuidar, mas que ainda assim acreditam que com pequenas ações organizadas e bem intencionadas aqui e ali vamos conseguindo semear as fundações de um movimento profundo e transformador. Se você é do Oeste Catarinense, participe do OeSC-Livre!