Quem gosta de CUDA e Linux, sabe que não existe (a não ser que você procure na internet) suporte para CUDA nas autotools. Bom, eu procurei a um bom tempo atrás e criei um template para iniciar todos os meus projetos de CUDA e agora, não apenas estou liberando ele como um template, mas também estou criando um repositório completo sobre CUDA no meu SVN onde obviamente esse é o primeiro projeto.
Sem demoras, é possível efetuar o download e entender um pouco mais do projeto na página do projeto.
PS: Saiu a versão 3.1 com suporte a printf() em interfaces Fermin
Entries Tagged 'C/C++' ↓
Autotools e CUDA
June 29th, 2010 — ANSI C, C/C++, News, Programação, Stuffs
Números aleatórios em C
February 4th, 2010 — 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;
Nova especificação do C++ adiada para 2010
De acordo com essa notícia do Slashdot, a nova especificação do C++ (C++0X) será adiada para 2010 ou depois. O motivo é a sua mudança principal chamada “concepts”, que visam deixar os templates mais robustos. Honestamente eu não vi muito de C++ ainda para discutir a fundo templates, herança, polimorfismo, ou qualquer outra coisa, mas uma nova especificação sempre é bem vinda (quando bem feita, que aparentemente é o caso), e pelo que li sobre “concepts” realmente é uma coisa bem complexa, que esta sendo desenvolvida a mais de 7 anos e ainda não está pronta. Como ela será o motivo principal do atraso, ela será retirada e a nova especificação irá se focar em outras coisas (como paralelismo por exemplo).
Observers em C++
June 10th, 2009 — C/C++, Programação, Stuffs, Tutorials
Observers são um patrão de design muito utilizado, principalmente quando você quer que camadas superiores do seu software saibam o que aconteceu nas camadas inferiores. O Ogre usa isso para renderizar Frames por exemplo, utilizando FrameListener. Pois bem, curioso como sou resolvi ir um pouco mais a fundo e ver como se faz isso na unha em C++, descobrindo o quão simples isso é, os passos são esses:
- Criar uma simples interface com um método que será chamado a toda atualização
- Criar um objeto singleton que pode ser observado, adicionando as interfaces em uma lista (ou pilha, whatever), que irá chamar o método de atualização de todos as interface quando obtiver uma mudança
- Criar um objeto que implementa sua interface.
- A cada atualização, notificar todas as interfaces.
Ogre, aos poucos…Menu 3D!
June 9th, 2009 — C/C++, OpenSource, Tips
Bom, eu sei que faz tempo que não aparecem trechos de códigos por aqui, culpe a falta de tempo.
Mas nada são más notícias, eu tenho um trecho aqui de um Menu 3D, com alfabeto e tudo mais
Ainda estou trabalhando na documentação, mas se você possui Linux e OGRE, pode brincar um pouco já, a idéia é bem básica, existem um Zip com os .mesh representando o alfabeto (por falta de vocação em 3D e vontade, temos apenas de A-Z e 0-9), criei (estou aperfeiçoando) uma classe para cuidar de mostrar o alfabeto em um ambiente 3D e, uma classe de Menu, que utiliza esse alfabeto e umas animações bem básicas mesmo.
Esse projeto eu vou fazer um pouco diferente, vou trabalhar no mesmo até conseguir entregar um binário de exemplo para Linux e Windows e, fazer com que esse binário rode em qualquer um desses SOs, com ou sem Ogre instalado.
Para ver como está indo, o link do SVN é:
http://svn.geekvault.org/ogre/MenuFramework
Abraços, e até a próxima.
Zarnick
Ogre, parte 1
February 5th, 2009 — C++, C/C++, Stuffs, Tutorials
Bom, como prometido, temos algo do Ogre aqui
Repito que não vou fazer um tutorial sobre isso, para isso vejam a Wiki do Ogre.
Antes de mais nada, como já foi dito anteriormente, o Ogre por sí só é uma engine gráfica 3D, o que quer dizer que sim, você pode fazer seu jogo nela, mas irá faltar no mínimo iteração com o usuário, som e física (verdade, alguns jogos não precisam de física, mas ficam muito melhores com;). Quando você instala o Ogre ele vem com a parte de iteração, utilizando agora o OIS (antigamente era a SDL) e para ter uma GUI, ele utiliza a CEGUI. Com isso você já consegue fazer um jogo quase completo (isso e muita paciência), ou um aplicativo, que é o que vou mostrar aqui. Continue reading →
Bullet physics
January 12th, 2009 — C++, C/C++, Stuffs, Tips
Bom, falar que fiquei pasmo com essa engine OpenSource de física é o mínimo. Ao procurar uma boa engine de física que rode com o Ogre de uma forma fácil e seu desenvolvimento seja voltado para o Linux, descobri Bullet. Apenas para ter uma ideia do quão ela é importante, o Blender a utiliza na sua última versão (2.48), como a engine física default para sua game-engine. Entre outras coisas que você pode ver em sua página de download (Google code) ela suporta soft-bodies, como por exemplo roupas e cordas.
Definitivamente vale a pena dar uma olhada
liblogger 0.1
November 19th, 2008 — C/C++, News
Ola pessoal, calma que minha faculdade está quase no fim, reta final!
Enquanto isso, gostaria de apresentar um novo projeto meu, a liblogger. Em quase todas as aplicações que eu faço eu preciso de um log, a maioria das pessoas precisa, e depois de copiar tantas vezes o mesmo código, resolvi inaugurar uma seção no meu domínio com algumas apps e APIs e, essa será a primeira a ser disponibilizada!
Todas as APIs terão uma documentação feita via Doxygen, um site via Joomla, tutoriais, e um espaço em packages.geekvault.org. Caso contrário ela estará no Sourceforge e provavelmente com sites mais personalizados, alias, esperem novidades nesse aspecto
. Continue reading →
Árvores!
July 24th, 2008 — ANSI C, C/C++, Stuffs
Demorou, vou assumir, mas finalmente eu programei mais uma estrutura de dados simples, a árvore. Vou preparar uma explicação sobre o que é uma árvore em computação (essa pode ser um pouco complexa) e assim que eu tiver eu posto aqui, mas por enquanto vocês podem ver o código no svn (http://svn.geekvault.org/c/trees)
Have fun.
Incluindo cabeçalhos de forma segura em C
June 25th, 2008 — ANSI C, C/C++, Tips
Certo dia eu estava conversando com um amigo meu sobre C e ele me falou que a coisa que ele mais odiava era ter que tomar cuidado com a ordem dos include que ele fazia quando iniciava um projeto em C. Ora, vamos pensar um pouco, se você incluir duas vezes o cabeçalho stdio.h por exemplo, em dois arquivos diferentes, e incluir os dois, não da erro certo?
Continue reading →
