Esse é o caminho que fazemos todos os dias:
Trick or Treat!
Tesssting 1.. 2.. 3.. Is this thing on?
Só testando se vou conseguir postar pelo Writer ou se o upgrade do servidor babou geral…
Fui!
Aquilo que está embaixo é igual àquilo que está em cima, e àquilo que está em cima é igual àquilo que está em baixo, para realizar os milagres de uma só coisa
Certa vez li numa superinteressante uma reportagem com várias fotos que mostravam uma mesma imagem sob várias aproximações (zoom) diferentes.
Qual não foi minha surpresa ao descobrir que tratavam-se na verdade de fotos de um vídeo produzido para a IBM:
Eita mundinho pequeno…
Para quem se interessou no título deste post, peguei-a emprestada deste site.
1…2…3… Testando!
Testando o Windows Live Writer… Vamos ver se vai se tornar minha ferramenta padrão pra postar no blog.
Se os açêntõs ficarem perfeitos, já está adotada
Preto, Azul, Verde, Ciano, Vermelho, Magenta, Amarelo, Cinza
Tem coisas que viram senso comum e você aceita sem questionar. Até o dia que você descobre uma explicação para aquela verdade universal e sua vida muda daquele dia em diante.
Desde o MSX, existem 16 cores básicas no modo texto dos computadores (sim, as 8 primeiras são as do título deste post).
A verdade universal a que me referia era o porquê dessas cores (e dessa ordem!). Bom, essa semana li uma explicação para a ordem e os valores das cores do console! Minha vida mudou
Então para a acabar com o suspense, compartilho este mistério da natureza com vocês:
| IRGB | Nome | RGB | |
| 0000 | Black | 00-00-00 | |
| 0001 | Dark Blue | 00-00-80 | |
| 0010 | Dark Green | 00-80-00 | |
| 0011 | Dark Cyan | 00-80-80 | |
| 0100 | Dark Red | 80-00-00 | |
| 0101 | Dark Magenta | 80-00-80 | |
| 0110 | Dark Yellow | 80-80-00 | |
| 0111 | Light Gray | C0-C0-C0 | |
| 1000 | Dark Gray | 80-80-80 | |
| 1001 | Blue | 00-00-FF | |
| 1010 | Green | 00-FF-00 | |
| 1011 | Cyan | 00-FF-FF | |
| 1100 | Red | FF-00-00 | |
| 1101 | Magenta | FF-00-FF | |
| 1110 | Yellow | FF-FF-00 | |
| 1111 | White | FF-FF-FF |
Não sei se mudou a sua, mas definitivamente mudou a minha vida…
Conhecimento
Conhecimento é importante. Não importa se você acha que não tem utilidade. Conhecimento é sempre útil. E não ocupa espaço.
Outro dia tava estudando a API do Windows (Win32 API) e li sobre uma função que retornava a cor mais próxima de uma dada cor. As placas de vídeo antigas tinham um número limitado de cores, aí o Windows emulava algumas cores fazendo combinação (dithering) de pixels. Então, às vezes, quando você tentava desenhar com determinada cor, essa cor não estava disponível e o Windows usava outra, próxima.
Hoje em dia as placas de vídeo possuem capacidade de cor muito maior e o Windows não precisa mais fazer essa substituição. Então essa informação que li era inútil…. certo?
E os celulares? Hoje em dia um celular representa um PC do início da década de 90 em termos gráficos. Já há alguns com aceleração gráfica 3D, mas é uma outra historia
E não é que o J2ME possui um método que faz exatamente o que o Windows fazia lá pros idos dos anos 80?
Outro dia ajudei um desenvolvedor a procurar esta funcionalidade por puro chute…
Fracasso
Estou lendo um livro deveras interessante, que pôs-me a pensar bastante hoje.
Como o título do post revela, o assunto que deixou-me intrigado foi sobre a forma como encaramos o fracasso. Uma das causas do meu interesse, foi o fato de sempre ter sido uma pessoa muito (auto-)crítica e sempre ficava desolado quando falhava em qualquer coisa.
O que o livro ensina, é que pessoas que obtiveram sucesso em suas vidas, não acreditam no fracasso. Ele simplesmente não existe para elas. “-Como não?” você pode perguntar. “-Elas moram em outro planeta?” certamente que não
O que os vencedores – aqueles que realmente obtiveram sucesso em alguma empreitada particularmente difícil - pensam quando não alcançam um objetivo, é que obtiveram um resultado inesperado. A partir daí aprendem com a experiência obtida e tentam novamente utilizando uma abordagem diferente da original.
Simples assim. Não há fracasso, há sim, resultados. Ação e reação. Se você não conseguiu o que queria, foi porque não utilizou métodos que lhe possibilitassem alcançar sua meta. Mude sua estratégia e tente novamente até obter o resultado esperado.
update: 25/4/06 – melhorando o texto. Bastante menos bastantes dessa vez
Garantindo Unicidade
Volta e meia é necessário garantir a unicidade de uma informação.
Tática Ingênua
dado = “dado invariante qualquer”
numero = random()
unicidade = dado + numero
Esta tática é ingênua pois possui alta possibilidade de repetição.
Como assim “alta possibilidade de repetição”?!!? Você está dizendo que o gerador de números aleatórios da minha linguagem preferida não é bom!?!?
De forma alguma. Porém imagine que este código permanecerá executando por bastante tempo: segundos, minutos, horas, dias, semanas, meses, anos. Alguma hora vai haver uma repetição.
Tática Menos Ingênua
dado = “dado invariante qualquer”
agora = ctime()
numero = random()
unicidade = dado + agora + numero
Esta tática é ‘menos’ ingênua pois ela possui uma possibilidade bastante baixa de repetição.
Atente somente ao fato de que pouca probabilidade não significa impossibilidade. Ainda é possível que haja repetição, porém o parâmetro aleatório (variável número no exemplo) serve para desempatar dois resultados que ocorram simultaneamente.
Simultaneamente? Sim! Este código pode ser executado em computadores diferentes, que nem possuem comunicação entre si e mesmo assim possuem baixa possibilidade de gerar o mesmo número em dois ou mais eventos.
Se a variavel agora possuir o valor ’20060415020030111′ que significa ’15/Abr/2006 02:00:30.111′ (15 de Abril de 2006 às 2h da manhã mais 30 segundos e 111 milésimos de segundo), a variável numero seria utilizada como ‘fator de desempate’ entre dados gerados no mesmo milissegundo em threads ou computadores diferentes.
Como mencionado anteriormente, uma grande vantagem deste método é a descentralização das informações. Vários eventos podem ocorrer em qualquer lugar e nenhuma comunicação é necessária entre eles para garantir uma unicidade bastante razoável.
Se utilizarmos algum identificador único do computador, como seu IP ou mesmo seu nome, garantimos que a variável numero só será necessária para desempatar dados gerados no mesmo computador, pois nenhum outro computador gerará o mesmo dado, a não ser que possua o mesmo IP ou nome do computador em questão.
