Monthly Archives: December 2008

Dica – Usando dosbox com som

Eu hoje testei o dosbox para jogar full throttle (DOS) e reparei que ele reconhecia o som (sound blaster / ultra sound – as duas são emuladas no dosbox) mas não tocava. Ele não usa o alsa, mas sim o oss.

Para resolver esse problema, é só instalar o pacote alsa-oss – na maioria das distros é esse o nome – e rodar:
aoss dosbox

no arch linux sudo pacman -S alsa-oss
no ubuntu deve ser sudo apt-get install alsa-oss

E pronto!

C++ – Threads

Continuando a série “O que fazer e o que não fazer em C++”, vamos hoje falar de threads. Threads, famosas threads.

As threads tem um estigma forte de “só use se realmente for necessário, e eu concordo com isso, mas o caso é que geralmente é preciso usar threads para várias coisas.

Podemos separá-las em dois grupos básicos:
1. Threads seriais
2. Threads concorrentes

Neste caso, as problemáticas são as concorrentes. Vamos entender o porquê.
Threads seriais não precisam de sincronização.  Podemos citar como exemplo uma thread que recebe mensagens via socket e coloca em uma fila, e outra thread vai remover pacotes dessa fila. O único cuidado que temos é de colocar corretamente os locks na fila usada para não ocorrer uma leitura de memória inválida. Continue reading

Jogos que quero jogar novamente

Estou colocando aqui jogos que quero jogar novamente.
Lista de pérolas da geração nintendo. Bold os que pretendo jogar novamente nestes tempos
Esta lista é quase particular, mas caso alguém queira dar uma sugestão, são bem vindas.

  1. Chrono Trigger (jogando!)
  2. Final Fantasy 7 (PS)
  3. Street Fighter
  4. Super Contra
  5. Double Dragon
  6. Super Mario World
  7. Super Mario III
  8. Super Mario Bros
  9. Cadillacs and Dinosaurs
  10. Metal Slug
  11. Full Throttle
  12. Knightmare (MSX)
  13. The Hobbit (MSX)

Conforme lembrando, vou postando aqui pérolas da geração nintendo que pretendo voltar a jogar 🙂

Ativando PS2

Hoje reativarei novamente o meu PS2, pois me deu uma vontade louca de jogar Guitar Hero.

Como faz um tempão que eu não  ligo, estava completamente alienado aos jogos. Ultimamente no pouco tempo que tive  joguei Chrono Trigger (Esse mesmo, do SNES) e um pouco de Mario Bros (no SNES tb)

Será que alguém tem alguma sugestão de bons jogos (recentes) ?

C++ – Mutex / Critical Section

Saluton!
Este é o primeiro de uma série de artigos de C++ sobre o que fazer e o que nunca fazer em c++.

É claro que fazer ou não fazer não é uma lei, mas uma boa prática, pois temos sistemas que devido a certos requisitos ou situações não podemos fazer as coisas da forma que gostariamos.

Para começar, vamos falar de mutex ou critical sections.
O que são e para que servem ?

Critical Section é uma forma de garantir que um trecho de código será acessado por somente uma thread/processo por vez, garantindo assim que uma thread não apagará algo que outra está lendo, por exemplo.
Para ficar mais claro, imaginemos uma fila de mensagens, aonde uma thread recebe mensagens via socket e põe um uma fila, e outra consome e processa. Se não tivermos uma critical section garantindo que só uma delas acessa um trecho de código por vez pode ocorrer da thread de processamento retirar uma mensagem da fila de leitura e a thread de recebimento tentar inserir uma nova mensagem depois dela por não saber que a mensagem já foi pegada e assim perdendo a mensagem quando esta for liberada. Continue reading