Chegou minha certificação LPI level 1

18 de janeiro de 2010

Agora certificado: LPIC-1!

17 de dezembro de 2009

Bom, tirei minha certificação LPIC level 1, agora em 2010 vou caminhar rumo a certificação Zend…vamos a luta!

Floripa: Prova de certificação LPI com desconto no SoLiSC 2009

18 de novembro de 2009

Enviado por Thays Cunha de Oliveira (thays·cunhaΘ4linux·com·br):
“Nos dias 26 e 27 de novembro de 2009 acontecerá a quarta edição do Congresso de Software Livre de Santa Catarina – o SoLiSC 2009 – no Centro de Eventos da Universidade Federal de Santa Catarina (UFSC) em Florianópolis – SC.

O SoLiSC é um evento construído pela Comunidade de Software Livre de Santa Catariana com o objetivo de divulgar, debater questões que envolvem o uso do software livre no estado. A última edição do evento aconteceu em 2005 e após uma reformulação na equipe da organização o eventos voltou e acontecerá anualmente.

No dia 27 a 4Linux, empresa afiliada do LPI no Brasil realizará a aplicação das provas e o Diretor Rodolfo Gobbi ministrará a palestra “Certificação em TI – Caminho rápido para um novo emprego” às 16h00.

Especialmente para o SoLiSC, os candidatos que comprarem uma prova pelo valor de lista de R$260,00, poderão se inscrever para a segunda prova pagando apenas 50%. Ou seja, as duas provas saem por R$390,00. O candidato economiza R$130,00.

Para mais informações acesse: http://www.4linux.com.br/Solisc-LPI” [referência: 4linux.com.br]

Luli Radfahrer – iMasters InterCon 2007

14 de novembro de 2009

Como promover a aprendizagem nas equipes de software

6 de novembro de 2009

Nas apresentações de Declan Whelan na Agile Testing centradas na promoção da aprendizagem em equipes de software. “Entregando valor a longo prazo para a nossa organização é bloqueada por nossa capacidade de aprender”, disse Whelan, apresentando várias grandes idéias como garantir que as equipes continuarão a aprender e melhorar.

Uma idéia para mim foi a criação de um projeto de estimação para a equipe experimentar coisas novas. As equipes podem, muitas vezes, apenas experimentar coisas novas para produzir um código evoluído. A única maneira que você pode ver como ele realmente funciona e como é fácil de manter, como muitos bugs existem e como eles são resolvidos rapidamente, a experiência realmente tem que ser prática. A menos que ele faça, você não pode realmente dizer se vai funcionar ou não. Às vezes as coisas acabam grandes e você decidi manter a experiência lá, às vezes eles acabam azedos e se pretende levr para outros projetos.  Por exemplo, fiquei muito impressionado com o Grails vários meses atrás e minha equipe decidiu construir uma aplicação web back-office com ele. Desenvolvimento inicial foi bem, mas que acabou por ser um desastre completo depois de bugs por causa de o ORM não ser fixo, upgrades quebraram a compatibilidade com versões anteriores e tivemos muito trabalho para manter a aplicação. O problema com algo parecido com isto é que é preciso ter tempo para mostrar como se comporta algo a longo prazo e o mundo não pára enquanto você está fazendo isso. No ponto em que você decide fazer alguma coisa, o projeto muda e outros componentes dependem do que você está fazendo agora. Isto é especialmente verdade se você quiser experimentar uma nova ferramenta de infra-estrutura.

Para resolver este problema, Whelan sugeriu a criação de campos de “prática” – têm uma base de código que está definido para jogar. Este poderia ser um projeto de estimação que a equipe está trabalhando em quanto está de folga, onde se pode experimentar e aprender novas ferramentas separadas do projeto de produção real. Para que isso funcione, pelo menos no meu caso, o projeto deve ser algo solto (sem dependências), para que você realmente sentir o alívio ou dor que o novo quadro ou a ferramenta trás depois de alguns meses. Se ele azeda, é um projeto de teste assim que você pode se dar ao luxo de tornar instável por um tempo. A manutenção de um projeto de teste trás trabalho suplementar e custo, mas isso deve ser orçado em R&D, que ajuda as equipes a aprender e não aumenta o risco da produção.

Leia o resto desse post »

Filtros Bayesianos – parte 1

4 de novembro de 2009

Eu perguntei se alguem ia ler, e uns gatos pingados no twitter me disseram que sim, então vou escrever :)

Vou falar hoje sobre a possiblidade de classificaçnao de conteudo usando os filtros bayesianos.

Primeiramente gostaria de dizer que ele eh facil de implementar, veja definicao dele abaixo:

Pr(A |B) =Pr(B|A) x Pr(A)/Pr(B)

Bem, se voce nao fechou o browser apos o que leu acima quer dizer que estamos prontos para ver isso, juntos, ja que tanto quanto voce eu gosto do assunto, mas nao sou expert nele, e essas coisas eu aprendi pelo prazer de ver como funcionam(e saber que realmente funcionam).

Quem ja tomou uma cerveja comigo sabe que apos um certo numero de garragas/latinhas eu começo a divagar sempre sobre um assunto recorrente, algoritmos, algoritmos, algoritmos…(sim eu sou nerd e falo de programacao quando bebo)

E aqui temos um exemplo muito bonito de um algoritmo que apesar de simples, cumpre sua missão. Sua dificuldade esta no entendimento da teoria matematima que nele se encerra.

Uma das tarefas que os seres humanos mais praticam é classificar aquilo com que tem contato. Classificamos livros(romance, ficção, auto-ajuda…), música(rock, metal, punk, industrial, classica…)e tudo o mais que vemos pela frente, ate algoritmos, através dos padrões de projeto. Fazemos isso para facilitar nossa vida, afinal, categorizamos nossos gostos e podemos dar atenção a aquilo que nos interessa, sem nos perder no mar de informação que é gerado e apresentado diariamente.

Inicialmente, criamos o habito de classificar de acordo com o feeling, fazendo com que por exemplo, ao olharmos para uma pessoa tenhamos certeza de que ela não é uma pessoa legal, baseado numa sensação criada por um gesto, uma fala ou alguma outra coisa significante que ja notamos em alguem que pertencia a categoria dos “não legais”.

Depois, se a gente começa a ficar mais interessado em classificar as coisas, e sempre ficamos, passamos a usar um esquema de pontos: O burger King é melhor que o Mac Donald’s por que nele os lanches tem sabor(1 pt), tem o mesmo tamanho apresentado na foto(mais 1 ponto), o atendimento é melhor(outro ponto) e assim vai. Quanto mais pontos com relação ao outro, melhor.

Veja que nos dois apresentados acima temos situações onde a interação humana com o objeto classificado foi necessaria.

Porém, existem coisas que podem ser automatizadas e que podem ajudar nos humanos a resolver problema do dia-a-dia que de outra forma tomariam muito do nosso tempo.

Uma forma de automatizar essa classificação é através dos filtros bayesianos.

Como primeiro exemplo, vamos usar o classico de descobrir se uma mensagem é spam ou não.

Uma mensagem de e-mail é spam a partir do momento que ela é indesejada, correto. Ela é uma mensagem não solicitada que aparece na nossa caixa de e-mail e faz a gente perder um tempo batendo o olho e sacando que ela é spam ou abrindo ela para ver se tem algo importante ali. No final das contas, se fosse uma por dia, vá lá, a gente suportava, mas são muitas e fazem a leitura de e-mail ser uma tarefa penosa… fazem a gente perder tempo com coisas que não nos interessam de forma alguma.

Ai vem a sacada, podemos olhar as mensagem e classifica-las em spam e candidatas a leitura, logo, a gente pode escrever algo que ajude a fazer isso automaticamente.

Esse é um filtro que precisa ser treinado e para treinar vamos precisar de exemplos.

Vamos pegar cem e-mails que são spam, que a gente leu e confirmou que eram, e vamos pegar outros 100 que são bons para leitura.

No total temos entao 200 emails com 50% em cada categoria. A boa e a ruin(spam).

vejamos algumas palavras que apareceram em cada uma das categorias

ruim:

  • venda
  • viagra
  • remedio
  • cirurgia
  • ajuda
  • vagas
  • curso
  • assinatura
  • faculdade
  • promoção

bom:

  • venda
  • curso
  • assinatura
  • php
  • evento
  • faculdade
  • promoção

Ok, temos algumas palavras que ocorreram em cada uma das categorias que queremos classificar os e-mail que a gente recebe.

O proximo passo é ver quanto elas aparecem em cada uma das categorias. O quanto elas aparecem em cada categoria é a base para a avaliação da probabilidade de uma mensagem estar em uma categoria ou outra.

ruim (100 emails): Pr(palavra | ruim)

  • venda 40 ocorrências 0.4
  • viagra 60 0.6
  • remedio 70 0.7
  • cirurgia 30 0.3
  • ajuda 20 0.2
  • vagas 40 0.4
  • curso 30 0.3
  • assinatura 10 0.1
  • faculdade 5 0.05
  • promoção 50 0.5

bom(100 ocorrências): Pr(palavra | bom)

  • venda 30 ocorrências 0.3
  • curso 40 0.4
  • assinatura 10 0.1
  • php 50 0.5
  • evento 40 0.4
  • faculdade 30 0.3
  • promoção 15 0.15

A terceira coluna representa uma porcentagem de ocorrências das palavras em cada categoria.

Logo, podemos dizer que a palavras venda tem 40% de chance de estar num e-mail ruim(spam) e 30% de chance de estar em um e-mail bom. E isso ja nos diz algumas coisas. Diz que só a palavra venda, nessa amostragem de e-mail, não é uma boa candidata a indicar em que categoria o e-mail esta.

A avaliação que fizemos até aqui diz qual a probabilidade de uma palavra estar em uma categoria, logo, ela nos diz uma parte da equação, que é Pr(B|A). Probablidade de B(palavra) em A(categoria). Isso se chama probabilidade condicional. A probabilidade da palavra viagra na categoria ruim é de 60% e de php na categoria bom é de 50%.

Relembrando que:

Pr(A |B) =Pr(B|A) x Pr(A)/Pr(B)

resolvendo uma parte:

Sendo 100 a probabilidade da categoria (100 emails na categoria ruim, por exemplo)

e 200 a probabilidade do documento(total de email’s)

Pr(A | B) = pr(B|A) X 100 / 200

Digamos que chegou um e-mail na conta e dentro dele tinha somente uma palavra: viagra

Calculando a chance de ser um e-mail ruim

Pr(ruim | viagra) = 0.6 X 100 / 200

Pr(ruim | viagra) = 0.3

Calculando a chance de ser um bom e-mail, digno de leitura :)

Viagra não aparece na categoria “bom”, logo, temos 0% de change desse e-mail ser bom.

Então, que tal tirar esse e-mail da sua caixa de entrada, automaticamente, por que ele não vale seu tempo de atenção?!

Vamos avaliar outro caso: Outro e-mail, algum que tenha chegado com mais palavras, digamos: faculdade, curso, promoção e php. Aqui vai.

Pr(ruim| faculdade & curso & promoção & php) = 0.05 * 0.3 * 0.5 * 100 / 200= 0.00375

Pr(bom | faculdade & curso & promoção & php) = 0.3 * 0.4 * 0.15 * 0.5 * 100 / 200 = 0.0045

Pois é, esse e-mail pode aparecer na sua caixa de entrada, se olharmos o resultado ele esta mais para bom do que ruim.

Algumas observações devem ser feita nesse ponto.

Esta é uma demonstração do teorema de Bayes, mas na implementação existem outras considerações que devemos fazer que não foram incluidas aqui, como o fato de uma palavra, no inicio do treinamento do algoritmo poder ter ocorrido somente uma vez na categoria ruim e isso não poder indicar, de forma alguma, que ela representa somente mensagens ruins. Outro fato seria que o ideal é que um resultado da avaliação de uma categoria para outra tenham uma certa “distância” entre si, para poder garantir que realmente pertence a uma categoria, caso contrario, ainda pode haver dúvidas quanto a classificação. Mais um fato é que esse algoritmo tem se mostrado eficiente para qualificações, mas nao numa amostra tão pequena quanto a usada aqui.

Esse artigo tem continuação, na qual irei codificar o algoritmo na linguagem php, com cobertura das observações feitas acima. O artigo ja esta sendo escrito e vai ser postado, com certeza ate o fim dessa mesma semana pós Latinoware.

Algumas referências usadas aqui:

Livro Inteligência coletiva – toby Segaran (Alta Books)

Matematico Thomas Bayes

Teorema

Probablidade

Probabilidade Condicional

via @ivonascimento http://ianntech.com.br/

Multimídia: Protocolos de transmissão de áudio e vídeo

28 de outubro de 2009

http://www.slideshare.net/fernandocostafln/multimdia-protocolos-de-transmisso-de-udio-e-vdeo

Concentrando…

19 de outubro de 2009

Começar a semana concentrado

meditacao

Just Java 2009 – via twitter

6 de outubro de 2009

@igorcosta: Slides de TODAS as palestras do Just Java 2009 disponiveis http://bit.ly/2gcKDc #justjava #justjava09

Programa de Certificações IBM

6 de outubro de 2009

A IBM Brasil passa a promover regularmente uma série de Sessões de Certificação relacionadas aos produtos IBM e conceitos como SOA, RUP e tecnologia XML. Veja a lista completa de certificações disponíveis

Verifique abaixo as datas e locais de realização das provas e inscreva-se pelo e-mail dwbr@br.ibm.com, enviando seu seu nome completo, e-mail, telefone,nome da empresa, o número da prova que você deseja realizar e a data/local escolhido.

Envie sua inscrição com até 15 dias de antecedência a data da prova e aguarde o e-mail de confirmação.

Datas
Brasília:
Local: UCB – Universidade Católica de Brasília
Campus Taguatinga
17/09/09
18/09/09
22/10/09
18/11/09
Campinas
Local: : Unicamp
Avenida Érico Veríssimo continuação na Estrada da Embratel, s/nº
Campus da Unicamp Cidade Universitária
30/09/2009
Curitiba
Local: : Universidade Positivo
Rua Prof. Pedro Viriato Parigot de Souza, 5300 Curitiba – PR
Campo Comprido
12/11/09
Florianópolis
Local: : Unisul – Universidade do Sul de Santa Catarina
RAv. Pedra Branca, 25 Cidade Universitária Pedra Branca
Palhoça SC
25/09/09
27/11/09
Porto Alegre
Local: PUC RS – Pontifícia Universidade Católica do Rio Grande do Sul
Av. Ipiranga, 6681 – Partenon, Porto Alegre – RS
21/10/09
Recife
Local: a definir
27/10/09
Rio de Janeiro
Local : PUC CCE – Centro
Av. Marechal Camara, 186 / 7 andar
Centro
24/09/09
Sao Paulo
Local : IBM Innovation Center
Rua Tutoia 1157-Térreo – Paraíso
29/09/09
29/10/09
24/11/09
Tubarão – SC
Local: Unisul Tubarão
27/10/2009
Demais Cidades
Caso a sua cidade não esteja listada nesta página, envie um email para dwbr@br.ibm.com e avaliaremos a possibilidade de abrirmos uma sessão de certificação em sua cidade.