11 de fev de 2010

DADP - Desenvolvimento de aplicativos desktop em Java utilizando padrões

Estão abertas as inscrições para a terceira turma do curso a distância DADP - Desenvolvimento de aplicativos desktop em Java utilizando padrões.
Ministrada pelo Prof. Antonio Passos.
Trata-se de curso livre e de qualificação, online e gratuito, voltado para estudantes e profissionais de TI. Entre seus objetivos está a capacitação dos participantes para:

* Projetar aplicativos desktop estruturados em camadas;
* Aplicar padrões de projeto no desenho de aplicativos desktop;
* Construir aplicativos desktop usando a linguagem Java, a IDE NetBeans e bancos de dados relacionais.

Para mais informações acessem o link abaixo:
https://docs.google.com/Doc?docid=0Aef7Mov4Vj1OZGhjN3FkNGZfMGd4NzJwa2Ny&hl=en&pli=1

10 de fev de 2010

Como resolver o problema de gravação Audacity no Ubuntu



Se você não conseguir selecionar "Wave Out" ou "Stereo Mix" que está listado como fonte de entrada na barra de ferramentas do mixer do Audacity, você ainda pode gravar com o Audacity. Você só precisa instalar o PulseAudio Volume Control.

Como resolver o problema de gravação Audacity no Ubuntu
Nota: Funciona desde a versão 9.10 Karmic Koala, testado em todos até o 11.10 Oneiric Ocelot
  1. Instale PulseAudio Volume Control, executando o seguinte no terminal:

  2. $ sudo apt-get install pavucontrol


  3. Execute o Audacity e

  4. a) vá para Preferências, pressionando Ctrl + P (ou selecione "Editar" -> "Preferências ..." do menu drop-down).
    b) clique no botão "Devices".
    c) alterar o dispositivo de reprodução para "Pulse".
    d) alterar o dispositivo de gravação de "Pulse".

  5. Abra o PulseAudio Volume Control ( "Aplicações" -> "Som e Vídeo" -> "PulseAudio Volume Control") e deixe-o aberto.
    Na primeira vez que você usa um programa de gravação, você precisa editar as configurações de gravação do PulseAudio Volume Control. Deve-se lembrar as suas configurações após a reinicialização.

  6. Abra o Audacity e clique em "Gravar".

  7. Enquanto está gravando no Audacity, abra PulseAudio Volume Control e selecione a aba "Gravar". Ela vai mostrar "Alsa plug-in Audacity. Alsa capture from" e um combo-box. Escolha o "Monitor of internal audio..." se você usar uma placa de som onboard.

    Nota: Você precisa selecionar um outro monitor se você quiser usar qualquer outro dispositivo de reprodução de uma placa de som onboard. Por exemplo, quando eu reproduzir o som com fones de ouvido Microsoft LifeChat ligado ao meu computador via USB, eu seleciono o "Monitor da Microsoft LifeChat Analógica estéreo para capturar com o Alsa.


  8. Verifique o Audacity, que deve está gravando agora!

8 de fev de 2010

Boas Práticas de Programação 2 - A Soma De Gauss

A Lenda

Conta-se que um professor de Matemática pediu aos alunos de sua turma que somassem todos os números de 1 a 100, como forma de castigo por serem indisciplinados. Grande foi a surpresa desse professor quando, em pouquíssimo tempo, uma das crianças (Carl Friedrich Gauss) levantou-se e lhe entregou uma folha de papel com o resultado correto e uma ideia simples, porém genial.

Trata-se da seguinte lógica:

S = (1+100) + (2+99) + (3+98) + ... + (50+51);


Para cada parcela temos o valor 101. E ao total temos 50 parcelas.
Logo, S = (50 * 101) → S = 5050.

Outra maneira de tratarmos desse problema seria,

S = n(n+1)/2;


Computacionalmente falando...

Levando esse problema para uma linguagem de programação, como Java, teriamos os seguintes trechos de código:

1. Iterando com um laço.


2. Utilizando a soma de Gauss


É notável que o consumo de processamento nos dois casos é muito significativo. Enquanto no exemplo 1 foram
realizadas 100 iterações, o exemplo 2 possui apenas uma instrução.

Friedrich Gauss (1777 - 1855)
Foi um astrônomo, matemática, e físico alemão.

Boas Práticas de Programação 1

Linguagem Java

1. Ao comparar Objetos, prefira começar pelo que você tem certeza que não seja nulo. Por exemplo:




Dessa maneira você evitará o erro:
Exception in thread "main" java.lang.NullPointerException
at mad3linux.Main.main(Main.java:20)
Java Result: 1

2. Ao criar um Bean para uso com banco de dados, crie os atributos que podem receber nulo em seu valor não com os tipos primitivos com int, long, boolean, double, etc. Crie como classes. Por exemplo:



Dessa maneira o atributo telefone, por exemplo poderá receber valores nulos, e não vai ser preciso validar, por exemplo, buscas e verificar se tal valor for nulo e por um zero no lugar. Exemplo:

Se o atributo telefone tiver o valor nulo, não terá problema pois o telefone é da Classe Long, e não do primitivo long, o qual não poderia ser nulo.

Think About it!