Name: Alan Silva
Member since: 2003-08-05 19:07:54
Last Login: 2009-01-07 15:50:07
Homepage: http://www.fzort.org/jumpi/
Notes: I'm a developer and sys/security admin and one of founders and member of NetBSD-BR Group, who divulges the use of NetBSD in Brazil... I'm a little grasshopper too... codename by mpr... or fzort and my nick is jumpi... :D
Visualizing Floats
Continuing the posts about data types and your characteristics, I read a nice article about Floating point numbers published by gamasutra:
http://www.gamasutra.com/view/feature/1965/visualizing_floats
Numeros complexos vs NaN (Not-a-Number)
Lendo uma thread em uma lista de discussão que acompanho, surgiu uma duvida bem interessante sobre NaN e em uma das mensagens me deparei com a seguinte afirmação.
“Números imaginários são um exemplo, sqrt (-1) retorna NaN. Outro é dividir zero ou +/- infinito por zero.”
Vamos analisar essa frase começando pelo fim.
De acordo com a IEEE 754, se eu tenho uma variável a = 0 e divido a mesma por 0, vai dar um NaN, porem se eu tenho em a um valor positivo que tende ao infinito, o valor vai ser positivo e se o valor de a for negativo, logo essa divisão vai resultar em um valor negativo.
Ok, até aqui nenhuma objeção, tudo nos conformes. Porém, porém… agora vamos a primeira afirmação.
“Números imaginários são um exemplo, sqrt (-1) retorna NaN.”
Ooopss…. Sinto que houve um equivoco ai, pois não foi definido pelo autor da frase em qual conjunto numérico ele está trabalhando, penso que ele se limitou a qualquer conjunto no qual sqrt(-1) realmente não tem solução (Q, R, Z…), porém, existe também o conjunto dos complexos e nesse conjunto, existe solução para sqrt(-1). E vamos provar isso utilizando o nosso velho amigo C++, pois ele possui uma classe/template por padrão que trabalha com números complexos usando tipos de ponto flutuante, ou seja, utilizando o nosso amigo, podemos provar que existe sim solução para sqrt(-1) no campo dos complexos
Listarei logo abaixo um código simples que demonstra a nossa teoria em C++, ou seja, provar que existe sim resposta para sqrt(-1) e que ela é diferente de NaN
(jumpi@Painkiller:~)$ vi complex.cpp
#include <iostream>
#include <complex>
using namespace std;
int main(int argc, char **argv)
{
complex<float> res = sqrt(complex<float>(-1));
cout << res << endl;
return(0);
}
(jumpi@Painkiller:~)$ ./complex
(0,1)
(jumpi@Painkiller:~)$
Antes recapitulando, a forma geral de um numero complexo no seu plano obedece a forma a + b*i, onde a representa o numero real e b um numero imaginário, ou seja, o retorno do tipo complex em C++ retorna as coordenadas de um numero complexo no plano.
No nosso caso, substituindo na fórmula, teremos a + b*i == 0 + 1*i que equivale a i.
Vamos fazer o teste para confirmar?? Utilizando o google, sim… o google, pois a busca serve como uma excelente calculadora e vai nos ajudar com a prova, digite sqrt(-1), qual a resposta??? Sim… sim… sqrt(-1) equivale a i, mesmo resultado apresentado pelo nosso simples programinha em C++.
Q.E.D.
Logo, sqrt(-1) = i e não um NaN conforme foi dito na thread.
Essa foi apenas uma demonstração de que não podemos esquecer da base matemática para formular uma resposta, principalmente no que envolve recursos que podem ser representados pela linguagem.
Maiores informações podem ser encontradas nos seguintes sites:
Wolfram Complex Number
Wolfram Complex Plane
C plus plus complex reference

When SHA-3 collides
Caramba…
Não sei se todos os leitores sabem, porém, o NIST esta fazendo um campeonato para promover um novo algoritmo de hash para incorporar o padrão SHA-3 e já temos algumas submissões de algoritmos de hash, para ser mais exato, 64 submissões ate o presente momento, sendo que algumas das submissões podem ser encontradas aqui.
Bizarro isso, em 2 papers/prototipos postados para o novo padrão SHA-3, 2 já foram quebrados… isso mesmo!! Colisões já foram encontradas… no Sgàil e no WaMM e o mais engraçado é que no caso do Sgàil, foi o próprio autor que conseguiu detectar a colisão no hash.
Seguem os links para quem estiver interessado em mais detalhes:
WaMM Collision e Sgàil Collision e as respectivas propostas do WaMM e do Sgàil.
Para quem curte, vale a pena dar uma olhada nas propostas, até mesmo nas que já foram quebradas e em seus protótipos de implementação.
Atalhos no MacOS X
Hail pessoas,
Conforme prometido, estou voltando a postar aqui novamente
Dessa vez o post vem para abrir uma nova seção em meu blogue, que e a seção apple e vem com algo que acredito que assim como tem enorme utilidade para mim, também vai ter para outras pessoas.
Bem, vamos ao que interessa, todos que mexemos constantemente com o computador, adoramos atalhos de teclado, pois eles otimizam e facilitam muito a vida da gente quando aprendemos, correto??? Enfim… estarei aqui postando alguns atalhos que acredito que sejam uteis no MacOS (sistema que eu utilizo no dia-a-dia)
Enfim, vamos as explicações básicas, e que tinha muitas duvidas no comeco de tudo
⌘ = Command, e como se fosse a tecla windows do seu PC, sim… aquela com o desenho da janelinha.
⌥ = Option ou Alt.
⇧ = Shift
^ = Control
E agora segue a lista com os atalhos básicos e que eu frequentemente utilizo no meu dia-a-dia.
⌘ + Q = Sai da aplicação
⌘ + W = Fecha a janela
⌘ + O = Abre um arquivo
⌘ + P = Imprime
⌘ + C = Copia (o CTRL+C do mac)
⌘ + V = Cola (o CTRL+V do mac)
⌘ + X = Recorta
⌘ + S = Salva
⌘ + Z = Desfaz a ultima alteração
⌘ + A = Seleciona todo o texto
⌘ + Y or Space = Quicklook
⌘ + Tab = Alterna entre as janelas
E para completar esse post, criei uma lista simples, porem usual em pdf a partir desse post que estarei disponibilizando aqui no rapidshare
Quinto Encontro de Programadores C/C++ Brasil
Olá pessoas,
Após muito tempo ausente, resolvi atualizar esse blogue…
Bem… posso dizer que foi uma ausência significativa, afinal de contas, aconteceram diversas coisas que não me deixaram ter mais tempo para atualizar esse blogue…
Enfim… vamos deixar de “chorumelas” (será que e assim que escreve isso???) e vamos ao que interessa…
Ontem tive um dia bem divertido, ao lado de grandes amigos programadores de C e C++, sim… fui em um evento muito legal na Microsoft, onde só tinham caras muito bons e pessoas de altíssimo nível palestrando e nesse post irei fazer um pequeno resumo do que foi o nosso encontro.
Logo pela manha, tivemos a abertura com o Otavio Pecego da Microsoft que deu uma boa introdução sobre a sua experiência e seu contato inicial com C e C++ e foi ilustrando toda a sua caminhada com os livros que foram importantes na jornada… inclusive, ate peguei algumas sugestões como o livro do John Lakos e o livro do Plauger de STL que eu não conhecia, tenho o C Standard Library que gosto muito…
Em seguida, foi a vez do Rodrigo Strauss, um velho conhecido da comunidade falar sobre as ferramentas utilizadas por ele para facilitar o processo de programação e detecção de problemas, ele comentou desde as ferramentas da sysinternals ate o windbg, tirando os problemas que ocorreram com o microfone (dizem que foi sabotagem dos programadores C#) a palestra foi muito produtiva, principalmente para o pessoal que era mais iniciante.
Depois tivemos uma verdadeira aula de Concepts com o Leandro, enfim, posso dizer que já havia tentado ler o livro do Alexandrescu e quando vi isso, fiquei meio aterrorizado, porem, como o tempo era curto, não deu para o palestrante demonstrar tudo o que sabia sobre o assunto, enfim, percebi que preciso ler e dar uma pesquisada melhor nisso.
Well… hora do almoço… e logo apos o mesmo, tivemos uma palestra bem diferente e interessante com o Felipe Almeida, que nos falou sobre Linguagens Embutidas em C++, confesso que a palestra foi bem interessante, porem, achei o exemplo meio que inusitado para a ferramenta especificada, mais enfim… e bom saber que existe esse tipo de coisa na boost…
Depois foi a vez do “meu irmão” a.k.a. Fabio Galuppo dar uma palestra sobre C++ Nativo no Windows Vista e Server 2008 e mostrar coisas bem legais como NTFS Transacional e Thread Pools… e claro, se tratando do nosso amigo Galuppo, não poderia terminar sem o interop de C++, porem, um assunto que muito me interessa e que ele tratou na palestra e que me fez correr atrás das palestras do Gamefest, afinal, já tinha guardado o link aqui e não tinha visto, foi o lance do PPL (Parallel Pattern Library) que e a nova lib de paralelismo que substitui a antiga TPL. Isso pareceu ser bem interessante…
E para terminar o set de palestras com chave de ouro, foi a vez do nosso amigo e grande colaborador do grupo, Basílio Miranda falar sobre File Mapping no Windows em C++ e demonstrar exemplos interessantes sobre o assunto…
Em seguida, foi a vez dos lighting talks onde o Andre e o Lamarão falaram sobre os seus respectivos projetos em conjunto com a comunidade, sendo que o foco principal foi a otimização da pixman pelo André e a convocação ao publico para trabalharmos em conjunto.
Logo após, houveram os sorteios e dessa vez quem levou a premiação de ajuda a comunidade foi o Pedro Lamarão que ganhou o livro autografado do Sutter
E apos isso, fomos ao bar para poder dialogar sobre o que mais gostamos e um fato curioso foi que pela primeira vez, apareceu uma garota na nossa ida ao bar… sim!!! Para mostrar que nessa comunidade também existem mulheres!!! Porem, o fato mais interessante foi que compareceram varias pessoas novas e as mulheres dessa vez estavam em um numero bem admirável no evento, espero que aumente ainda mais e que as mulheres realmente mostrem a sua forca e parem com esses bla-bla-bla e autopromoções…
Enfim, que venha o próximo encontro… que vai ser o encontro de Embarcados…
acs certified others as follows:
Others have certified acs as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!