Polaris para Android

Quem diz que eu sou contra o Android está coberto de razão. Não sou tão xiita como outros que escrevem aqui no blog, mas detesto Android e seu sistema de desenvolvimento.

Tendo dito isto, algumas vezes fazemos ports de títulos que vão bem no iOS para o Google Play. Este é o caso do jogo Polaris.

Um arcade clássico da época do Atari 2600 e Odissey agora em versão Android.

Confira no Google Play: https://play.google.com/store/apps/details?id=br.com.netfilter.polaris

unnamed

VLC volta para o iOS

Depois de muitos meses do #mimimi do francesinho que fez com que o VLC sumisse da App Store hoje voltou para a iTunes App Store o VLC.

Se você quiser fazer o download ele está disponível já.

Acontece que neste meio tempo o povo acostumou a viver sem o VLC. Em concreto o CineXPlayer que nunca me deixou na mão é um perfeito substituto do VLC com muitas coisas que o original VLC da AppStore não tinha, como legendas.

Se você for usar o VLC e gostar de aventuras aqui vai a receita de bolo para compilar ele no seu Mac com o ambiente de desenvolvimento do iPhone.

git clone git://git.videolan.org/vlc-ports/ios.git
 
#build para o simulator
sh buildAspenProject.sh -s
 
#build para o device
sh buildAspenProject.sh
 
# os dois passos acima demoram bastante. Agora só abrir no XCode e executar.
# se você usa muito linha de comando no Mac experimente o iTerm2
# para este projeto o zsh é melhor que o bash

Ainda não está 100%, mas já é um começo. Vamos ver se o Remi não volta a dar piti (trocadilho foi proposital) ou o Stallman.

VLC iOS

VLC iOS 2

Primos na Espiral de Ulam

Uma das razões dos números primos serem tão legais se deve ao fato deles se comportarem de forma estranha. Eles parecem aleatórios.

Algumas vezes você tem longos espaços entre dois números primos e, de repente, como os ônibus, vêm dois de uma vez só. No entanto, no fundo no fundo, eles não são completamente aleatórios.

Um matemático Polonês chamado Stanislaw Ulam, que foi para os EUA pouco antes da Segunda Guerra Mundial, estava, depois da guerra, em 1963, assistindo uma apresentação de um trabalho chatíssimo e longo com um papel e uma caneta na mão e resolveu fazer a seguinte brincadeira para se distrair:

No centro do papel colocou o número 1 e foi fazendo uma espiral quadrada com a sequência, conforme a figura abaixo:
ulam1

Depois disso, começou a circular os números primos nesta espiral, conforme a figura a seguir:
ulam2

Ele ficou surpreso pelo fato dos números primos caírem em diagonais. Como todos os números primos, exceto o 2, são números ímpares e como as diagonais nesta espiral alternam entre pares e ímpares, não é surpresa que os números caiam em diagonais alternadas, mas que algumas diagonais tenham mais primos do que outras.

Pouco tempo depois ele resolveu fazer um programa usando o computador MANIAC II para imprimir pixels nos pontos primos (exatamente como eu fiz em vermelho no excel) e conseguiu fazer uma imagem com os números até 65.025 (255 x 255).

Aqui abro um parêntese para falar do MANIAC II.

Ele era um computador criado em 1957 com 4096 words de 48bits (24kbytes) de memória RAM em Magnetic-core Memory e 12288 words de 48bits (576kbytes) em Williams tubes. Em média, uma multiplicação neste computador demorava 180 microsegundos e uma divisão 300 microsegundos. Uma verdadeira eternidade para os tempos de hoje.

Voltando à espiral do Ulam, o que ele conseguiu com a impressão da matriz de 255 x 255 de pixels foi a confirmação do que ele havia visto com 100 números. Realmente há um padrão no qual os números primos aparecem em diagonais, com intervalos, é claro, e algumas diagonais parecem ter mais primos do que outras.

ulam-255x255

Todas as linhas nesta espiral obedecem à seguinte equação quadrática: 4x^2+bx+c

Por exemplo, a diagonal que começa no número 3 tem a seguinte equação: 4x^2-2x+1
3, 13, 31, 57, 91, … (Confira na imagem acima)

Na prática, há uma hipótese de que estas diagonais podem servir para procurarmos números primos grandes, já que algumas diagonais têm mais primos do que outras diagonais. Melhor dizendo, algumas equações quadráticas têm mais chance de retornar números primos do que outras.

Um exemplo de diagonal com 40 números primos em sequência é a seguinte: x^2-x+41 que gera a seguinte sequência de 40 números primos:

41, 43, 47, 53, 61, 71, 83, 97, 113, 131, 151, 173, 197, 223, 251, 281, 313, 347, 383, 421, 461, 503, 547, 593, 641, 691, 743, 797, 853, 911, 971, 1033, 1097, 1163, 1231, 1301, 1373, 1447, 1523, 1601 (O 41o número é igual a 41^2 e, portanto, não é primo)

As diagonais com as maiores densidades de números primos conhecidas são a belezuras abaixo:

x^2 + x + 3399714628553118047

e (desculpe, não cabe na tela)

x^2 + x + 332518109806968781031500852571295088573128477514981900349983874538507313

O que interessa nisto tudo, é que, parece que, há fórmulas com mais densidade de primos do que outras (isso ainda não foi provado) e isto pode ajudar a resolver outros problemas, como a hipótese de Goldbach (que diz que todos os números pares maiores do que 2 podem ser expressados pela soma de dois números primos) ou a hipótese da existência de infinitos números primos gêmeos.

Como não poderia faltar, eu fiz uma implementação em javascript para mostrar esse grid, só que em vez de 255 x 255, o grid que eu fiz é de 1000×1000. O resultado está neste link. Obviamente você pode aumentar o tamanho do canvas para gerar coisas grandes, como essa de 25.000.000 de números (5000 x 5000) que eu fiz usando o mesmo código (Clica que aumenta).

ulam-5000x5000

 

Edição das 11:50 (Não podia faltar o código Python. O @jbvsmo depois dirá que está lento….)

#!/usr/bin/env python
import sys,math
import Image
 
size = int(sys.argv[1])
 
def sieveGen(siz):
    l = [2,3,5,7,11,13,17,19,23,29]
    if (siz < 31):
        return l
    for i in xrange(31,siz,2):
        isP = True
        rT = math.sqrt(i)
        for j in l:
            if i%j == 0:
                isP = False
                break
            if j>rT:
                break
        if isP:
            l.append(i)
    return l
 
mySieve = sieveGen(size)
 
 
def isPrime(n):
    if (n == 1):
        return False
    if (n < size):
        return (n in mySieve)
    isP = True
    sqrtN = math.sqrt(n)
    for j in mySieve:
        if (n%j)==0:
            return False
        if (j>sqrtN):
            return True
    return True
 
 
 
 
def spiral(N):
    im = Image.new("RGB", (N, N), "white")
    pix = im.load()
    red = (255,0,0)
    if(N%2):
        x = y = ((N-1)/2)
    else:
        x = y = (N/2)
    N2 = N*N
    dx = 1
    dy = 0
 
    val = 1
    amp = 1
    c = 0
 
    while (val <= N2):
        mvd = 0
        while ((mvd < amp) and (val <= N2)):
            if isPrime(val):
                pix[x-1,y-1] = red
            x += dx
            y += dy
            mvd += 1
            val += 1
 
        c += 1
        if (c == 2):
            c = 0
            amp += 1
 
        if (dx == 1):
            dx,dy = 0,1
        else:
            if (dy == 1):
                dx,dy = -1,0
            else: 
                if (dx == -1):
                    dx,dy = 0,-1
                else:
                    if (dy == -1):
                        dy,dx = 0,1
    im.transpose(Image.FLIP_TOP_BOTTOM).save("ulam.png")
 
spiral(size)

Sistemas Operacionais de tempo real em microcontroladores

O nosso colaborador do blog de muitos anos, o Marcelo Barros lançou um livro sobre Sistemas Operacionais de tempo real em microcontroladores (RTOS)

Aqui vai a resenha:

Neste livro são explorados os princípios básicos de criação de um sistema operacional de tempo real (RTOS). Usando um microcontrolador MSP430 como referência e um compilador GNU GCC, as tarefas mais importantes no processo de criação de um RTOS são detalhadas através de um projeto conhecido como Basic RTOS, criado especificamente para este fim.

É um livro voltado para profissionais que trabalham com sistemas embarcados e que queiram ter mais domínio sobre a construção de sistemas de tempo real. Conhecimento de linguagem C e um pouco de arquitetura de microcontroladores é essencial para uma compreensão plena do conteúdo.

Implementando Sistemas Operacionais de Tempo Real em Microcontroladores (Portuguese Edition)

O livro custa USD 1,27 e você pode ler no Kindle em qualquer smartphone ou tablet ou até no próprio Kindle.

MSP430F5638

Desta vez o @cardoso exagerou na dose de bobagem no MeioBit

Antes de começar o texto, um aviso, o Cardoso tem muito mais leitores que eu, é infinitamente mais influente na blogosfera que eu e tem mais fãs e haters que eu. Gosto muito do estilo de escrita dele como já falei antes aqui, e acho infeliz os outros autores do Meio Bit que tentam copiar o estilo e expressões dele.

Tendo feito esta observação convém ressaltar que a formação científica do Cardoso é bastante inferior à daquele que vos escreve. Isto é arrogância? É uma constatação dos fatos, como o primeiro parágrafo. Comento a seguir um texto dele publicado hoje ontem no Meio Bit.

O texto dele vai em vermelho e o meu em azul.

Imagine que 95% dos acidentes de carro fossem causados por um vírus. Agora imagine que um grupo de cientistas descobriu uma vacina que protege contra esse vírus, mas como todo bom talismã mágico, há um porém: Você precisa se vacinar antes de aprender a dirigir.

Problema nenhum, certo? Vacine-se as crianças e pronto. Protegidas por toda a vida.

Se a vacina for segura, comparada com os possíveis danos causados à população e se for um gasto, em termos de saúde pública, que faça sentido, concordo plenamente.

Agora imagine que um grupo de idiotas acha que ao vacinar as crianças antes de aprenderem a dirigir as torna propensas a querer dirigir antes do tempo, e por isso preferem que seus filhos fiquem desprotegidos, suscetíveis ao vírus que causa 95% dos acidentes, mesmo sem nenhuma relação real entre uso da vacina e interesse em dirigir.

A comparação é desonesta, já que querer dirigir antes do tempo é diferente do que se comentará a seguir. Serve como uma metáfora, mas é bem fraca.

Em essência é a vacina contra o HPV, o Human Papyloma Virus. Esse bicho é responsável por verrugas genitais e diversos tipos de câncer, incluindo 95% dos casos de câncer de útero. E EXISTE UMA VACINA! isso mesmo, fuck cancer, uma vacina que aplicada em mulheres (casos de câncer de útero em homens tendem a ser raros) antes da fase sexualmente ativa, quando têm contato com o HPV e outros vírus, garante imunidade.

Descreveu de maneira boa o que faz a vacina e até aqui não temos muitos problemas.

A polêmica, criada por conservadores e fanáticos religiosos nos EUA, é que ao vacinar crianças e pré-adolescentes estariam estimulando esses jovens e iniciar atividade sexual. Sim, eu sei, não faz sentido, mas mesmo que fizesse se o preço pra proteger minha filha de um troço que causa 95% dos casos de câncer no útero fosse se tornar sexualmente ativa, eu mesmo contrataria o Kid Bengala.

O nome que se dá para contratar o Kid Bengala é pedofilia. Mesmo você sendo pai da criança ficticia o que você propôs é uma aberração tão grande que espanta não ter saltado aos olhos dos leitores do Meio Bit, mas isto tem uma explicação que vai mais adiante. Contratando o Kid Bengala depois de ter vacinado ela contra HPV pode fazer com que ela contraia Aids, Sífilis, Gonorréia e fique grávida na adolescência. Aí o esperto diria, mas o Kid Bengala irá usar preservativo, ok. Segue sendo pedofilia e diminui muito a chance de Aids, Sífilis, Gonorréia e engravidar.

Alheio a essa polêmica babaca, o SUS vai investir R$ 360,7 milhões na compra de 12 milhões de doses, aplicadas em meninas entre 10 e 11 anos, a partir de 2014. No Brasil o câncer de colo de útero é o segundo maior matador de mulheres, por ano são 4,8 mil vítimas fatais e 18.430 novos casos são diagnosticados.

Há várias prioridades que o Cardoso esquece e vacinar contra HPV aos 10 não é de longe a mais importante. Já visitei hospitais e pronto atendimentos de várias cidades do país e posso garantir que HPV não é de longe a maior preocupação. Em Amajari, RR, estive dois anos lá fazendo trabalho voluntário e os primeiros médicos que passaram lá foram do nosso grupo. Lá a grande preocupação de saúde é que quando se corta o dedo com uma serra não há quem conserte. O remédio é esquentar um facão e cortar o polegar fora. Depois que você faz uma cirurgia vascular na mesa do diretor da escola com estilete de cortar folha de caderno você tem um pouco mais de noção de onde se poderia empregar os 360 milhões de reais.

Não precisa ir a Roraima para ver coisas similares, no Capão Redondo um aluno que eu co-oriento na USP contou que a furadeira falhou e ele foi no supermercado comprar uma Black and Decker para abrir a caixa craniana. É episódico? Sim. Mas é um conjunto muito grande de fatos episódicos e conhecendo como é a administração do PT não creio que o estudo epidemiológico e de custo tenha sido o mais competente para o pais.

E não. O câncer de colo de útero não é o segundo matador de mulheres. Em termos de câncer em mulheres é o quarto que mais mata, o segundo mais comum. (1-Mama, 2-Aparelho Respiratório, 3-Colon e Reto, 4-Colo de útero).

Poderia dizer que há esperança disso mudar, mas não seria verdade. Não é esperança, é praticamente certeza.

Nos EUA, somente 32% das meninas tomaram as 3 doses necessárias para a vacina surtir efeito. O criminoso movimento antivaxxer e conservadores religiosos afetaram as campanhas de saúde pública. MESMO ASSIM comparando com dados pré-2006, quando a vacina foi introduzida, os casos de contaminação por HPV entre adolescentes caíram 56%.

Nenhuma variação na atividade sexual das meninas foi identificada. Estranhamente não associaram tomar injeção com autorização pra liberar a bacurinha.

Se este dado tiver a mesma confiabilidade do que tem acima fica difícil acreditar, além disso nunca é boa prática ler um artigo científico só pelo abstract. Quem já esteve dos dois lados do peer-review sabe como torturando bem os dados conseguimos mostrar quase tudo. Um estudo isolado, e que não tenho a referência acima, é difícil ter sua validade analisada.

No Brasil vamos superar de longe essa marca. Nossos conservadores religiosos não costumam encher o saco com assuntos de saúde pública, aqui até padre usa camisinha.

A citação ao padre sem vergonha, cujo link removi, mas você pode ver no Meio Bit é tentar confundir a discussão. Mas concordo, o brasileiro é muito frouxo (mesmo com as recentes manifestações) para brigar por estas coisas. E com relação ao grupos católicos no Brasil é mais fácil brigarem pela reforma agrária que discutir questões sérias de saúde pública.

De resto, qual foi a última vez que você viu um cachorro com hidrofobia ou uma criança aleijada por pólio? Vacinas funcionam, vide os casos de sarampo nos EUA após a introdução da vacina:

sarampo

Comparar sarampo com HPV é comparar laranjas e pepinos. Obviamente que o sarampo, como a varíola já foi, está em vias de ser erradicado e isto graças a campanhas inteligentes de vacinação.

Mas afinal, você, Pedro Paulo, é contra ou a favor de vacinar contra HPV. Eu não sou contra, mas acho que a questão é bem mais complexa que parece e precisa de uma discussão séria sem por o Kid Bengala no meio.

Portanto, faça a coisa certa e vacine suas filhas. Se não quiser esperar o SUS, a vacina já está na rede privada, e vale cada centavo de sei lá quanto estão cobrando. Não estou pedindo que acredite em mim. Como diz Richard Dawkins, ciência funciona. Se você baseia medicina em ciência, ela cura pessoas, se projeta aviões baseado em ciência, eles voam.

Ciência funciona, bitches.

O próprio Cardoso mostrou hoje como eles voam… Mas para quem crê que a Ciência é o único deus e Dawkins o seu profeta é fácil negligenciar estas contradições no próprio dia.

Com relação à razão pela qual os comentaristas do meio bit não atentaram para estes pontos, colo dois screenshots abaixo que ilustram bem a fauna.

Screen Shot 2013-07-03 at 21.19.22

Screen Shot 2013-07-03 at 21.19.39