A independencia da Escócia pode ser ruim para seu site

Amanhã a Escócia vota se deixa o Reino Unido ou não. Atualmente o Não está na frente das pesquisas por uma mínima margem e tudo pode acontecer.

Tudo começou com este cara aqui:

Mas pode acabar com a bomba explodindo no colo de muitos webdesigner do mundo. O motivo dramático? Se a Escócia sair do Reino Unido a bandeira do Reino Unido vai perder o Azul e você vai ter que trocar aqueles ícones que indicam inglês no seu site.

ccb23abd5

Obviamente é brincadeira o que estou dizendo, não que a bandeira não vá mudar, há propostas inúmeras para isto, o fato é que no mundo bastante interligado uma mudança num lugar tem inúmeros impactos em países que não tem nada com a história.

Obs 1: Antes de sair chamando um escocês de Inglês dê uma olhada na diferença que há entre: Inglaterra, Grã Bretanha, Reino Unido, Commonwealth, Reinos da Rainha Elizabeth II.

Obs 2: Para acompanhas as pesquisas: http://www.bbc.com/news/events/scotland-decides/poll-tracker

Obs 3: Os catalães estão de olho nisto. Se a Escócia sair do Reino Unido e não for chutada da união Européia vai abrir a temporada de independências na Europa.

Qual é o maior número que existe?

Suponhamos que estão reunidos quatro amigos numa mesa de bar, um médico, um advogado (os outros estão de olho nas suas carteiras…), um matemático e um engenheiro de computação. Depois de muitas cervejas, para decidir quem paga a conta eles fazem a seguinte disputa: “em quinze segundos, quem escrever o maior número não paga”.

Antes que o advogado garfasse eles escrevendo o maior número que todo mundo escreveu mais 10%, ele costumava cobrar “10 purça” nos seus negócios com o governo, o pessoal estabeleceu algumas regras: não vale escrever algo que não seja calculável (assim elimina o truque do advogado), nem escrever coisas não numéricas como infinito, \aleph_0, etc.

Cada um pegou seu guardanapo e deram a largada.

O advogado escreveu 10000000000000000000000000000 e acabou o tempo.

O médico, um pouco mais sabedor de matemática escreveu 10^{10000000000000000000000000} e acabou o tempo.

O matemático escreveu 10^{10^{10^{10^{10^{10^{10}}}}}} e acabou o tempo.

E o cara da computação escreveu A(100,100), onde A é a função de Ackerman.

Não preciso dizer quem ganhou …

A função de Ackerman é definida para números inteiros maiores ou iguais a 0 pela seguinte descrição:

A(m,n) = n + 1 se m = 0
A(m,n) = A(m-1,1) se m > 0 e n = 0
A(m,n) = A(m-1,A(m,n-1)) se m>0 e n>0

Ou em Python de forma simples:

def A(m,n):
    if m==0:
       return n+1
    if n==0:
       return A(m-1,1)
    return A(m-1,A(m,n-1))

Esta inocente função produz resultados brutalmente gigantes rapidamente. A(4,4) = 2^2^2^2^2^2^2 – 3

Se você quiser ter uma idéia do dano causado por isto vá no seu python e digite: 2**2

A seguir digite: 2**2**2

Depois digite 2**2**2**2

Se fizer isto mais uma vez vai comer toda sua memória e não vai terminar o cálculo.

A(100,100) é um número tão gigante que nós nem temos bytes suficientes no mundo para representá-lo.

Portanto o advogado, o médico e o matemático pagaram as bebidas do cara da computação. Não sabiam eles, que no próximo encontro, iriam pagar de novo, pois o cara da computação sabia uma função ainda mais brutal que a de Ackerman.

Se você quiser saber mais sobre este assunto leia o artigo: “Who Can Name the Bigger Number?.”

numbers

Em sites, o diabo está nos detalhes

Você recebe um e-mail de uma empresa que quer falar com você sobre negócios, entra no site da empresa, vai no sobre para saber quem são os caras e dá de frente com a foto abaixo:

pingjam.com/about

O que há de errado? 🙂

Nota posterior: Veja meu chat surreal com eles:

→Hi

Pingjam: Hello

Pingjam: How can I help you today?

→You have a problem at page http://pingjam.com/about/

Pingjam: I will ask our web team to take a look at it. What is the problem you are seeing?

→the picture

→there’s toilette paper over the table.

Pingjam: LOL

→That’s bad for business. My boss saw it and gave up using your services.

Pingjam: Really? Because one of our programmers had a cold?

→The main usage of toilette paper is not for colds

→I was just giving one feedback.

Pingjam: 🙂 Thanks. Summer is starting here and we’ll take a new photo of the office.

Pingjam: Can I help you with anything else?

Pingjam: Wait, wait!

Pingjam: My co-worker just fixed the photo, can you reload he about page and tell me what you think?

→That’s better. 🙂

→cheers

Nova foto:

Nova foto

Estimando distâncias com a câmera do celular.

Aqui vai uma dica para você que precisa defender o seu cliente de snipers, há outras utilidades também, mas esta e a mais legal que consegui pensar agora.

O problema que queria resolver no fim de semana enquanto fazia uma corrida era: será que daquele prédio um sniper consegue me acertar? Qual a distância? Obviamente a pergunta é retórica, mas serve para ilustrar um problema interessante: estimar distâncias.

Quando eu era garoto meu pai me ensinou a estimar o horário usando apenas o dedo e a palma da mão e isto foi uma habilidade que me ajudou em mais de uma ocasião. Estimar distâncias usa princípios similares, mas se você tem um celular e photoshop fica mais fácil.

O princípio é o de distância angular, que no nosso caso pode ser simplificado conhecendo o tamanho de um objeto a uma distância que temos o valor, no meu caso um muro de 1,68m a 6m de distância. E conhecendo o tamanho de um objeto a distância que queremos estimar, no meu caso a altura de um andar de prédio que tipicamente pode ser 3m.

MilMoaTutorial4-5cm

 

MilMoaTutorial4-5cm-2

 

Uma aproximação rápida neste caso pode ser feita usando a seguinte regra de três:

A 6 m de distância.

851px / 168cm = 5.065 px/cm

A x metros de distância

24px / 300cm = 0.08 px/cm

Logo:

x = 6 * 5.065 / 0.08 = 379.5m

Medindo a distância no mapa podemos ver que acertamos com bastante precisão.

MilMoaTutorialMap

 

Se levarmos em conta o desnível entre o ponto “alvo” e o ponto de observação o valor chega muito mais próximo da estimativa que fizemos com a câmera.

Se você gostou do assunto, sugiro as seguintes leituras:

Dia do Pi

Hoje é o dia do Pi. Isso mesmo, 3/14 em notação americana.

O número pi (3,141592….) é um número obtido da relação entre o diâmetro de um círculo e seu perímetro . Nem precisava dizer isto pois os leitores do Zeletron sabem isto.

É um número fascinante: irracional e transcendente.

Aqui vai um programa Python para calcular PI

#!/usr/bin/env python
from __future__ import with_statement
import decimal
 
def pi_gauss_legendre():
     D = decimal.Decimal
     with decimal.localcontext() as ctx:
          ctx.prec += 2
          pi_fun = lambda a,b,t: (a + b)**2 / (4 * t)
          a, b, t, p = 1, 1/D(2).sqrt(), 1/D(4), 1
          pi, piold = pi_fun(a, b, t), None
          while pi != piold:
               piold = pi
               an = (a + b) / 2
               b = (a * b).sqrt()
               t -= p * (a - an)**2
               a, p = an, 2*p
               pi = pi_fun(a, b, t)
               return +pi
 
decimal.getcontext().prec = 100
print pi_gauss_legendre()

Grandes empresas pequenos programadores

Da mesma forma que não existe uma mulher ligeiramente grávida, ou um homem meio Padre, em computação há operações que ou ocorrem totalmente ou não ocorrem. São conhecidas como transações.

O exemplo clássico de transação é uma operação bancária onde A saca dinheiro no caixa eletrônico. As seguintes operações devem ocorrer de forma atômica ou seja indivisíveis:

– Conferir a senha e o cartão

– Aprovar o valor

– Remover o valor da conta do cliente

– Entregar o dinheiro para o cliente.

Se uma destas operações falhar todas elas tem que ser desfeitas como se nunca tivessem ocorrido. Qualquer aluno de computação ou que tenha o mínimo conhecimento de Banco de Dados sabe disto.

Bem, pelo menos deveria saber….  O Banco Santander é um dos maiores bancos do mundo, no entanto já não é a primeira vez que vejo um bug horrível no sistema deles.

Hoje fui sacar dinheiro no caixa eletrônico de uma agência do Santander: senha, código de segurança, pedi 100 paus, confirma, abençoa, autoriza de novo, tem certeza mesmo, e pimba autorizado.

Ouvi o ruído caracteristico da máquina contando dinheiro e para minha surpresa aparece uma tela do Windows XP avisando que o sistema estava sendo reiniciado.

Esperei um pouco para ver se voltava, como demorasse fui ao caixa ao lado para sacar o dinheiro. Saquei o dinheiro e ia indo embora quando tive um estalo: será que eles debitaram da minha conta os primeiros 100 paus? Minha cabeça de engenheiro de computação disse:

– Claro que não, transações são atômicas.

No entanto como sou doutor em Medicina também, meu alter ego disse: vai lá e confere. Tirei um extrato e dito e feito, dois saques de cem paus e recebi apenas um deles.

Agora tenho que ir discutir com o gerente para recuperar meu suado dinherinho.

Para quem duvida, tirei algumas fotos.

Transação Maluca

Santander #Fail

Programa para descobrir sua idade auditiva

A audição é um sentido fascinante. Tipicamente o ser humano escuta frequências que variam de 20Hz a 20000Hz, no entanto, com o passar dos anos as pessoas vão perdendo audição na faixa mais próxima a 20000Hz, este fenômeno é conhecido como Presbiacusia.

Isto já foi explorado antes naquele toque de celular que só pessoas jovens escutam, no entanto ficou como uma curiosidade e há usos interessantes…

Vamos ensiná-lo a fazer um programa que teste a sua audição usando um computador e poucas linhas de código.

Você só precisa instalar a linguagem de programação Python.

Testando se escuta 10000Hz:

Abra um editor, digite as linhas abaixo e salve como teste.py; a seguir execute o arquivo teste.py – você ouvirá um som agudo por um segundo.

import winsound
winsound.Beep(10000,1000)

Como podemos inferir do código acima, a função winsound executa uma frequência determinada em hertz (de 37Hz a 32767Hz) durante um tempo especificado em milisegundos (no nosso caso 1000 milisegundos)

E 15000Hz? Fácil …

import winsound
winsound.Beep(15000,2000)

Note que neste caso aumentamos a duração para 2000ms ou 2 segundos.

Vamos fazer agora um programa para testar aproximadamente a frequência de corte da sua audição (vamos fazer incrementos de 500Hz e iniciar em 10000 Hz)

import winsound
for i in xrange(21):
	freq = i*500+10000 #10000, 10500, 11000, etc
	print "Tocando %dHz"%freq
	winsound.Beep(freq,3000) 
	#note que voce escuta um clique no comeco e fim do som
	#isto é a inércia do alto-falante

Agora que você descobriu a máxima frequência que você escuta temos um excelente meio de espantar as crianças de perto do computador, sem lhe incomodar…

import winsound
while 1:
       winsound.Beep(17500,200000)

Caso você queira espantar o gato e não as crianças use o seguinte código:

import winsound
while 1:
       winsound.Beep(23000,200000)

Utilize uma caixa de som bem potente 🙂

Campanha: Martinez, nada de celular novo em 2009

Esta semana eu estava falando com o Cláudio Martinez do AllGSM pelo MSN e ele me contou que nos últimos 12 meses ele já teve 17 celulares e agora estava vendendo seu N95 e comprando um Motorola K1 para, segundo ele, tentar se livrar do vício de trocar de celular com tanta frequência. (Vamos torcer para que ele consiga)

A lista completa dos últimos celulares dele é a seguinte:

  • 3 HTC Touch
  • 1 HTC P4351
  • 3 Nokia N95
  • 2 Nokia N95 8GB
  • 1 Nokia N73
  • 1 Nokia E61
  • 1 Nokia E62
  • 1 Qtek 9090
  • 1 HTC P3401
  • 1 MotoQ 8
  • 1 SonyEricsson K850i
  • 1 Nokia 5800 XpressMusic

Martinez, vamos lá, repita diariamente as seguintes frases: “Só por hoje eu não vou trocar de celular! Só por hoje!”. Você consegue se livrar desse vício!

Mas ele tem uma vantagem, já que, como é um excelente negociante, não só não perdeu dinheiro com essas trocas todas como ainda ganhou uma graninha nessas negociações.

Eu já me achava estranho de ter trocado de celular três vezes nesse mesmo período de 12 meses. O Nokia E65, o Nokia E51 e o atual Nokia N82, mas ele me barrou feio nesse quesito.

E vocês, têm alguma história semelhante de compulsão por trocar de celular? Quantos celulares já tiveram nos últimos 12 meses?

A Nokia e o número 4

Um post rápido, mas curioso: Já pararam para pensar o quão raro é o número 4 na Nokia? A série de aparelhos começa na série 1000, seguida pela 2000, depois pela 3000 e … pimba, primeiro salto para a série 5000, seguindo sem saltos até a série 9000 com os Communicators.

Dentro de todas essas séries, só consegui encontrar 5 aparelhos que contivessem o número 4 no seu modelo. (Nokia 6234, Nokia 6124 classic, Nokia 5140i, Nokia 5140 e Nokia 3410) Até os E-Series e N-Series ficaram sem nenhum 4 nem no primeiro nem no segundo dígito.

Algum esperto poderá argumentar: “Mas e a Série 40? Essa tem 4!” É verdade, mas já repararam que a própria Série 40 não tem uma 4a edição? Pula da terceira para a quinta edição. O mesmo acontece com os S60, eles pularam da terceira edição para a quinta e ninguém reparou? Será que o 4 é o número do azar na Finlândia?

Como eu não sou supersticioso por que superstição dá um azar danado, termino esse post com um quarto parágrafo só para deixar a pergunta no ar? Porque será que a Nokia não gosta do 4? Dêem seus palpites.

Um Nokia num pacote de chips?

Uma norte-americana (ainda tem hífen?) do estado de Wisconsin, teve a ingrata surpresa de encontrar um celular usado e todo engordurado dentro do pacote de batata chips enquanto se deliciava do petisco gorduroso.

Emma Schweiger, assim se chama a infeliz compradora do pacote “premiado”, encontrou um aparelho velho e com um chip (não a batata, o SIM Card mesmo) da operadora T-Mobile, o que prova que o celular deveria ser de um funcionário distraído que o deixou cair dentro do pacote de batatas, durante o processo de fabricação.

A empresa recolheu todo o lote de batatas e ofereceu um pacote novo para a senhora, mas ela recusou a oferta dizendo que não vai querer batata chips por algum tempo…

Agora ela promete que não vai mais comer salgadinhos direto do pacote, vai colocá-los numa tigela antes para evitar maiores sustos. Imagina se fosse algo mais nojento como um Siemens A50, um Motorola V3 ou um iPhone? Ecow! Nem gosto de imaginar!

Gostaria que os leitores tentassem me dizer qual é o modelo daquele bendito Nokia que a senhora está segurando na foto ao lado? Alguém tem idéia?

Fonte: IntoMobile

Eficiência do seu carregador

Hoje li no blog da Elis Monteiro do jornal O Globo, um post sobre o consumo de energia de um carregador de celular.

Não é nada incomum eu me esquecer de tirar o carregador da tomada depois de carregar o celular. O que acontece é que mesmo sem carregar o celular, ele está lá consumindo eletricidade. (Quando comecei a escrever esse texto, meu carregador estava lá quieto na tomada, sem um celular pendurado, que vergonha)

Pensando nisso, um grupo de fabricantes de celular (Nokia, LG, Motorola, Samsung e Sony Ericsson) criou uma escala para classificar seus carregadores, baseada no consumo de energia deles enquanto estão plugados na tomada mas não estão carregando baterias.


Apesar de nunca conseguirmos escolher o carregador (a menos que ele quebre), já que ele vem sempre junto com o celular, é bom saber o quanto ele consome de eletricidade se ficar lá pendurado sozinho.

Se o argumento ecológico não for suficiente, um carregador que tenha um consumo de 0,5W pode contribuir para você tomar um chopp a menos no final do mês ou mais, dependendo do tempo que ele fica plugado sem carregar.

Segue abaixo o link da página da Nokia que tem a tabela de carregadores e o quanto de eletricidade eles consomem ficando parados na tomada.

http://www.nokia.com/chargerenergy

O carregador do meu E51 (AC-5) tem só duas estrelas, da mesma forma que os carregadores do 6555 e E65 (AC-4).

Fica aqui a pergunta: “Quem tira o carregador da tomada enquanto ele não está em uso?”