By Zarnick in Stuffs
Ola a todos, estou migrando para um servidor privado no Dreamhost (Private Server), e até estar finalizado pode ser que ocorram erros 503 por um certo tempo. Caso isso ocorra, por favor me avisem, pois ainda estou ajustando a quantidade mínima de RAM para utilizar o servidor.
Obrigado.
Tags: Informativo, servidor, stuff
By Zarnick in ANSI C, C++, C/C++, News, Programação
Bom, todos nós sabemos que rand() nos retorna uma distribuição uniforme de números aleatórios, na realidade praticamente todos os geradores de números aleatórios nos retorna uma distribuição uniforme, o problema é como utilizamos. Procurando sobre isso, encontrei esse artigo que explica o motivo do “erro” de utilização e como corrigir o mesmo.
Enquanto ele não resolve o problema para geração de números aleatórios em paralelo (minha mais nova paixão), ele dá boas dicas de como solucionar isso, e provavelmente como solucionar também em paralelismo (já que o problema está na utilização e não no algorítmo).
Vale a pena dar uma lida, esse é um assunto muito importante para todos, principalmente para quem ainda gera os números dessa forma:
srand(time(NULL));
int num = rand()%max;
Tags: C++, Dicas, OpenSource, Programação, stuff
By Zarnick in News, OpenSource, Stuffs
Apesar de eu estar dando um enfoque um pouco mais para programação do que para novidades, essa é importante. De acordo com essa notícia do Slahsdot, a Apache Foundation anunciou o release da versão 1.3.42 do servidor HTTP Apache e falou que será a última release do mesmo, exceto para updates de segurança. Agora vamos todos para o Apache 2, querendo ou não
Tags: Apache, Linux, Noticias, OpenSource, Stuffs
By Zarnick in ANSI C, OpenSource, Programação, Stuffs
Quem já programou em clusters (ou até mesmo utilizando paralelismo) sabe das enormes vantagens que o paralelismo pode trazer. O que poucas pessoas sabem é que você pode ter tudo isso na sua casa, programando em sua placa de vídeo nVidia utilizando CUDA, uma arquitetura de programação paralela genérica, disponibilizada Free pela nVidia.
Diferente de várias formas de programação paralela, as placas da nVidia utilizam muito mais transistores para para processamento de dados no lugar de memória, dessa forma temos o chamado SIMT(Single Instruction Multiple Threads), não vou explicar exatamente como o CUDA faz ou até mesmo como programar para CUDA agora (mais tarde sem dúvida vou colocar algum código bem explicado, mas o tempo está cada vez mais escasso). Basta falar que em uma GeForce 8500GT temos 16 cores separados em 2 processadores, e uma GTX280 conta com 280 cores, o que a nVidia fez que é extremamente elegante, foi separar o número de threads possíves pela quantidade de memória a ser processada, e não pela quantidade de processadores, dessa forma você tem uma escalabilidade praticamente perfeita.
Explicando um pouco melhor isso, para rodar algo em uma GPU utilizando CUDA você precisa criar um Grid de execução, cada Grid possui um conjunto de Blocks (blocos de threads) e cada Block possui um número n de threads que é ditado pela quantidade de dados a ser processado. Mais interessante ainda é que cada bloco de thread possui um espaço de memória do tipo shared (compartilhada) que é extremamente rápida, porém apenas as threads daquele bloco podem acessar esse espaço de memória. Além disso existe a memória do tipo global, que fica toda na GPU e qualquer thread (ou bloco) pode acessar, e outros tipos (constant, register, local e texture).
Bom, esse não é nem o básico sobre CUDA, é apenas um texto para dar um gostinho de quero mais. Um pequeno teste que fiz foi portar o algoritmo de ordenação Bitonic Sort para CUDA (código retirado dessa thread do Forum da nVidia), e comparar a versão sem paralelismo com a versão do CUDA, pois bem, o programa faz isso:
- Cria um array de 2^25 números = 33.554.432
- Copia a memória para a GPU (apnas na versão CUDA)
- Popula o array com o indíce invertido (array[0]=33554432, …, array[33554432]=0)
- Ordena utilizando o algoritmo Bitonic Sort
- Copia de GPU para a memória local de volta (apenas na versão CUDA)
- Valida os dados
na versão simples (sem paralelismo) tudo isso demorou em média 4 minutos e meio para executar, na versão CUDA demorou 0.3 segundos em uma GeForce 8500GT. Isso convence do poder do CUDA?
Para saber mais:
CUDA Zone: Site oficial com uma extensa documentação sobre o CUDA
Dr.Dobbs: Tutorial fantástico sobre CUDA
Tags: CUDA, introdução, paralelismo, Programação
By Zarnick in News
Esse vídeo é para todos que acreditam que bebida e direção combinam, dessa vez, tente pensar duas vezes antes ok?
By Zarnick in News, Segurança
E começou a festa, foi encontrado o primeiro exploit para o Windows 7 e Windows Server 2008 R2, ele ataca o protocolo SMBv1 e SMBv2, causando o travamento da máquina e necessitando um Reboot manual. Até agora a Microsoft falou para bloquear as portas TCP 139 e 445, não se sabe quando eles vão arrumar isso.
Importante, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003 and Windows 2000 não são afetados pelo exploit.
Fonte: Computerworld
Tags: exploits, Segurança, SMB, Windows 7, Windows Server 2008 R2
By Zarnick in News, Segurança
Bom, foi encontrada uma falha de vulnerabilidade no Flash que não será sanada tão cedo de acordo com a Adobe. De acordo com Mike Bailey do site ForegroundSecurity, a vulnerabilidade é muito parecida com a forma como o Javascript valida os conteúdos, coisa que o Flash faz parecido, mas não tanto. Pelo que pude entender, é justamente esse não tanto que causa isso, você consegue subir um conteúdo inválido, ele é executado e pronto, você tem o seu exploit.
A forma de corrigir isso? Colocar mais restrições e validações nos arquivos que possam ser enviados, isso quem tem que fazer é o administrador do site, e como temos muitos administradores por ai que não sabem esses detalhes de programação, ou que não se importam, tenham muito cuidado.
Tags: exploits, flash, Novidades, Segurança
By Zarnick in Reviews, Stuffs, gadgets
Bom, sei que estou chegando tarde ao mundo dos novos consoles, porém consegui apenas agora o Nintendo Wii e gostaria de deixar meus comentários sobre o mesmo.
Leia abaixo e deixe seu comentário sobres essas críticas/comentários.
Tags: HBC, Nintendo, Review, Wii
By Zarnick in News, Segurança, Tips
Bem, volta e meia surge uma forma de conseguir root via local exploit no Linux, o que “normalmente” é arrumado na velocidade da luz, os patchs são feitos e todo mundo fica feliz. Parece que esse bug que o The Register está falando está a um certo tempo, foi arrumado no OpenBSD ano passado, finalmente foi arrumado no Linux, porém os RH continuam vulneráveis. Linus fala que não é um problema de Kernel, porém você utiliza uma função do kernel (mmap_min_addr por exemplo) para criar o exploit e virar root. Não me interessa quem tem a razão, a RH, a única que ainda não havia fix, criou um fix, então, tratem de arrumar!
Tags: exploits, Linux, Novidades, OpenSource, redhat, Segurança
Recent Comments