segunda-feira, 19 de março de 2007

Fortran, outra derrota e outras coisas!

Esse fim de semana, entre uma latinha e outra a vários km de casa, estive extremamente preocupado se eu estava lembrando a regra correta da troca no War, clássico jogo de tabuleiro da Grow. Afinal, os exércitos adquiridos na troca devem ser todos obrigatoriamente colocados nos territórios das cartas correspondentes, ou em qualquer território meu?

Enfim, entre uma troca e outra latinha, me avisaram que o Barueri estava ganhando de 2 x 0 do Santo André. Bah, rumo a série A-2, estou conformado já. No final ainda descontamos, 2 x 1. Remotissimas chances, agora. Informações aqui.

O Urubatan tem feito uma série de pesquisas em seu blog sobre o perfil dos programadores Java. Já sabemos que a maioria dos votantes programam em Java porque gostam da linguagem, tem entre 19 e 24 anos e acham que um programador precisa ter um monte de características importantes. :) A pergunta dessa semana é a quanto tempo você programa em Java? Eu nessa a quase 6 anos, e você?

Por fim, a pouco eu li no GUJ que John W. Backus, o principal criador do Fortran, faleceu com 82 anos. Essa notícia me remeteu as primeiras aulas de programação, aquela coisa de história da informática, mesmo, onde entre outras coisas alguém te fala sobre o surgimento do ENIAC e do Fortran.

É uma sensação estranha.

terça-feira, 13 de março de 2007

Santo André 1 x 1 Rio Branco

Já era.

Nem tem mais o que escrever.

A Matemática diz que temos que vencer TODOS os jogos pra TENTAR fugir do rebaixamento.

A Biologia diz que algumas ANTAS são... bem, são antas mesmo, então não dá pra se esperar muito.

A Física diz que se a bola não for em direção ao gol, dificilmente acontece um.

E a Língua Portuguesa culta do torcedor no estádio diz: "Vai si f... vâmo jogá a p... da A-2 ano que vem por causa dessa m... de time do c... vai tomá no c..."

Tsc, tsc. Já era.

sexta-feira, 9 de março de 2007

Java 6 - jconsole

O jconsole não é exatamente um novo aplicativo no Java 6 - foi lançado no Java 5, com menos recursos. Mas está bam-bam-bam nessa nova versão da JDK. O objetivo dessse cara é ajudar na monitoração e gerenciamento de recursos da Virtual Machine em tempo de execução.

Ou seja, vai ser menos difícil encontrar o motivo daquela maldita memory leak ou o porque daquela aplicação estar mais lenta do que deveria.

Para iniciar o jconsole, vá até o diretório bin da instalação do jdk e execute o aplicativo... jconsole. A tela será aberta solicitando qual processo - local ou remoto - deve ser conectado. Na teoria, deve trazer uma lista de processos Java rodando na máquina sob o mesmo usuário. Como na minha tentativa de execução não apareceu, fui para a segunda opção, passando o ID da transação na linha de comando:

jconsole 3940

O jconsole exibe algumas abas que trazem dados sobre o processo conectado. A aba Memory traz informações sobre consumo da heap e non-heap memory, e uma opção de "executar" o Garbage Collector. A aba Threads traz detalhes das threads em execução, quantidade, e uma opção para detectar possíveis deadlocks. A aba Classes traz a estatística do número de classes carregadas.

Só com essas informações já dá pra se divertir um pouco, mas há muito mais opções nessa nova versão da JDK. Clique aqui para saber as novidades sobre gerenciamento e monitoração no Java 6.

quinta-feira, 8 de março de 2007

Virada histórica

O Santo André virou o primeiro tempo perdendo de 3 a 1 pro poderoso São Bento.

A pá de cal já estava em ponto de bala.

Não sei o que aconteceu, alguma nova chance de vida, sei lá o quê, viramos e vencemos o jogo por incríveis 4 a 3.

Foi como colocar o nariz pra fora d´agua e puxar o ar, antes de submergir de novo.

Domingo, contra o Rio Branco em casa, vamos ver se continuamos respirando.

Mais informações aqui.

quarta-feira, 7 de março de 2007

Santo André x São Bento

Veja bem, em tempo:

Nesta quarta-feira jogamos contra o São Bento, SÃO-BEN-TO, no Brunão, nossa casa.

O adversário tomou de 6 (SEIS) no último jogo.

Tudo bem que o aprendiz de técnico dos caras caiu, mas é o São Bento, hein... se não amanhecer quinta-feira com a primeira vitória, merece jogar contra o Taquaritinga ano que vem, mesmo.

Quero só ver. Mais informações aqui.

Escopo



Não, não é um ectoplasma. Foi coisa da aula de hoje, mesmo.


Essa imagem, que foi cuidadosamente digitalizada utilizando métodos avançados do Paint Enterprise Edition, mostra um modelo básico de como o Analista de Negócios define um escopo para desenvolvimento de uma solução.

Na prática, é uma imagem que todo mundo que fez um sistema na vida já presenciou: o cliente (stakeholder, interessado, o cara que paga, enfim...) tem um problema de tamanho X - a área vermelha. O Analista de Negócio vai lá e vê que não é bem assim, e sugere que o escopo da solução seja a área azul. A área vermelha que não será implementada tende a ser o requisito sem importância ou sem tempo/recurso para ser desenvolvido.

Em contrapartida, como o Analista é uma pessoa boazinha, propõe coisas "a mais" a serem implementadas. Algumas melhorias não imaginadas pelo cliente. Claro que provavelmente serão melhorias que de certa forma já devem estar prontas lá na fábrica de software, e facilmente anexadas ao produto, senão não faria sentido.

Apesar de simples, existem algumas armadilhas aí. Quando é definido o que fica "fora", provavelmente alguém ou alguéns no cliente vai ficar insatisfeito, é é muito importante saber quem são esses alguéns, e o quão insatisfeitos eles vão ficar. Por outro lado, não se deve oferecer facilidades a mais sem a certeza de que isso não vai gerar custos que não serão cobertos.


terça-feira, 6 de março de 2007

Java 6 - ArrayDeque

Inspirado na apresentação do JustJava 2006 do Sr. Luis Arnaldo de Gusmão Bastos, conhecido por todos como Luca, vou postar aqui algumas coisas sobre Java 6. Até mesmo para fixação própria. Vamos começar por uma novidade da API, a clsse ArrayDeque.

ArrayDeque é uma implementação da interface Deque sem limitação de tamanho, e que não permite inserção de null. Os Deques são coleções que suportam inserção e remoção bidirecional, ou seja, tanto no começo quando no fim da fila.

ArrayDeque<String> a = new ArrayDeque<String>();
a.addFirst("A");
a.addLast("B");
a.addFirst("C");
a.addLast("D");

// Lista os elementos do ArrayDeque na ordem natural
// C A B D
for(String s:a){
   System.out.printf("%s ",s);
}

// Lista os elementos do ArrayDeque na ordem inversa
// D B A C
Iterator <String>di = a.descendingIterator();
while (di.hasNext()) {
   System.out.printf("%s ", di.next());
}

// Retorna o primeiro elemento ("C"), sem removê-lo
System.out.printf("%s\n", a.peekFirst());

// Retorna o ultimo elemento ("D"), sem removê-lo
System.out.printf("%s\n", a.peekLast());

// Retorna e REMOVE o primeiro elemento
System.out.printf("%s\n", a.pollFirst());

// Retorna e REMOVE o último elemento
System.out.printf("%s\n", a.pollLast());

// O primeiro elemento agora é "A"
System.out.printf("%s\n", a.peekFirst());

ArrayDeque ainda contém outros métodos utilitários como contains(Object), que retorna true se o objeto existir no array, removeFirstOccurrence(Object) e removeLastOccurrence(Object), que removem respectivamente a primeira e a última ocorrência do objeto no array.

Deque implementa Queue, do Java 5, e é uma opção para implementações de filas FIFO. Eu mesmo a teria utilizado a alguns meses atrás, em um projeto onde estava implementado uma fila de mensagens GSM. Um servidor recebia as mensagens numa ponta, e na outra N processos em paralelo retiravam e processavam as mensagens. Teria sido bem útil.

Mais detalhes em http://java.sun.com/javase/6/docs/api/java/util/ArrayDeque.html

domingo, 4 de março de 2007

Quod erat demonstrandum, Ponte 3 x 1 Santo André

Conforme especulado, vamos começar a semana com os mesmos dois pontos que terminamos.

Nota do narrador da rádio CBN Campinas: "Esse Sandro Gaúcho, como é que pode, UM único jogador deixando toda a defesa da macaca enlouquecida..."

Pois é. O gol solitário foi dele. Pena que só é UM único jogador mesmo que faz alguma coisa nesse time.

Se cuida Mirassol, Taquaritinga...

Mais Hand Ibira

O coordenador da Hand Ibira, Ricardo "Big" Shimanuki, pediu para algumas pessoas escreverem sobre o que o Hand Ibira significa para elas, contando algumas histórias, enfim, falar um pouco sobre o assunto.

Vou falar menos do Hand Ibira, e mais do que significou pra mim.

Quando eu estava na 7a série, no alto dos meus 13 anos, a escola estadual que eu estudava foi participar de um torneio de Handebol de nível municipal, entre outras escolas estaduais e particulares.

Eu era o goleiro daquela "equipe", mas nunca tive treinamento específico pra posição. Eu era goleiro simplesmente porque gostava de jogar no gol, seja no handebol ou no futebol. Mas como todos sabem, handebol é viciante e apaixonante, de fato que comecei a gostar do jogo mais do que simplesmente "estar" ali.

Depois de alguns jogos - a equipe tinha dois ou três jogadores que resolviam tudo - fomos jogar contra "A" equipe. Não me lembro qual colégio era, mas eu lembro que o treinador dos caras era também treinador do time da minha cidade. No jogo, eu pulava de lá pra cá e de cá pra lá, as vezes a bola pegava em mim, mas via de regra ia busca-la nas redes.

Óbvio, perdemos.

Mas ao fim do jogo o treinador adversário veio conversar comigo e com outro jogador da minha equipe, nos elogiando e convidando para treinar no time da minha cidade. Ficamos contentes e orgulhosos pelo convite!

Mas não fomos. Medo, enfim, sei lá por quê, não fomos.

15 anos depois conheci o Hand Ibira. Fiquei sabendo dessa turma que se conheceu na Internet e que de repente se juntaram no parque pra tentar jogar uma pelada desse esporte que nós amamos.

"Pelada" mesmo. No primeiro dia que cheguei, não conhecia ninguém, fazia anos e mais anos que eu não entrava numa quadra pra jogar Hand... e cheguei, disse que era goleiro, perguntei quem estava ali esperando de próximo, 15 minutos depois estava lá embaixo do sol esperando a primeira bolada no peito! E ninguém que não jogue Hand consegue entender como é que uma pessoa em sã consciência pode gostar de tomar uma bolada no peito!!!

Foi incrível essa sensação. Me senti como se tivesse aceito o convite do treinador 15 anos depois.

E foi a mesma sensação de ver um dos primeiro jogos do que viria a ser a equipe do Hand Ibira, torcendo ao lado da quadra como um integrante de torcida organizada. Foi fantástico!

Hoje eu jogo pouco, é verdade, os muitos quilos e a pouca coragem de acordar cedo levam a isso. Mas aquele pequeno grupo que por um bom tempo brigava por uma quadra no parque, cresceu, e hoje ganhou o respeito de todos. Com algumas brigas internas, entre altos e baixos, o Hand Ibira hoje é uma referência de sucesso, no meu entender. E tenho um puta orgulho de ter acompanhado esse crescimento quase do começo.

"E pode chutar mais forte que tá vindo muito fraco!!!" :)