Thursday, April 15, 2010

End of the line for blogspot

I'm happy to announce that this blog has been migrated to a Wordpress blog, which is many times better than blogspot. Sorry Google, I love your products, but once you don't give much attention to blogspot, I'm obligated to use a better tool.

So you there guy, in my new blog!

Friday, March 5, 2010

Jango, Rails and RESTful - Integrating websites in 18 minutes and 18 lines of code.

Jango.com is one of the most incredible on-line radios I know and some time ago I decided to put Daniella Alcarpe songs on this site. Jango has many things that make artists life happier and easier: you pay Jango to play your songs to people who probably will like your song. For example, Daniella sings Brazilian Bossa Music, so in Jango I choosed to play her songs just for people who like this kind of music, people who listen to João Gilberto, Caetano Veloso, Chico Buarque and so on.

After songs starts playing, the artist starts to get fans. And they really come! With just 2 months of Jango, Daniella has almost 400 new fans, from all over the world.

Now comes the coolest part: we can interact with these fans. They can send us messages, comment on our profile, send us feedback and we can send them messages too. This is awesome and very useful for an artist who is becoming her artist life.

Jango website was made in RubyOnRails, so they provide an API for people who wants to use Jango information on their own website. And that's what I did, in an extremely easy way. I wanted to show in Daniella's website recent comments from fans on Jango. It took 18 minutes for me to integrate these two websites, using Rails ActiveResource. Here's what I did:

1 - I've created two models (models/user.rb and models/comment.rb) on my project, one to deal with Jango Users and one to deal with Jango Comments:
class User < ActiveResource::Base
self.site = "http://www.jango.com"
end

class Comment < ActiveResource::Base
self.site = "http://www.jango.com/artists/48343/"

def user
@user ||= User.find(user_id)
end
end

2 - Then on my SocialController I have this:
class SocialController < ApplicationController
def index
@comments = Comment.find(:all)
end
end

3 - And in my views/social/index.html.erb I have

<% @comments.each do |c| %>
<%= link_to "#{c.user.first_name} (#{c.user.country})", "http://www.jango.com/users/#{c.user.id}" %>
<%= c.body %>
<% end %>
And that's it: 9 model lines of code, 5 controller lines of code and 6 view lines of code. With 18 lines of code, I've integrated Daniella Alcarpe website with Jango. This is the power of Rails and RESTful. Now everybody who visits www.cantora.mus.br can see what fans are saying about the singer and her wonderful work. Check for yourself.

PS: of course there are some cache stuff to deal with on this integration, but for now I'm not worried. "Premature optimization is the root of all evil (Donald Knuth)"

Sunday, February 14, 2010

15 Perguntas e Respostas sobre Ciência da Computação


Nas últimas semanas troquei algumas conversas com amigos que, coincidentemente, tiveram o mesmo tema. Paralelamente a isso, fui indicado por uns professores do IME a responder um questionário que ajudará alunos ingressantes na Universidade a escolherem o curso que possivelmente definirá todo o resto de uma vida. Esse questionário será respondido por algumas pessoas e existe um grupo que está encarregado de colher as informações e colocar no site do IME-USP. Decidi tornar a resposta do meu questionário pública, para aqueles que querem saber um pouco mais sobre o que é Ciência da Computação, tanto no nível acadêmico quanto profissional. Me coloco a disposição para responder perguntas e ouvir sugestões.

1 - O que o motivou a fazer Ciência da Computação?

Eu sempre tive interesse por Computação. Comecei cedo na área, quando ganhei meu primeiro 386 em 1992, isso sem contar o TK3000 que eu ganhei quando era criança e o MSX de um amigo, com o qual eu passava horas digitando códigos em BASIC que na época se comprava em banca de jornal. Na minha primeira tentativa de entrar na faculdade, eu prestei Engenharia Mecatrônica. Eu acho que naquela eu era muito influenciado pelo que meus pais falavam e eles comentavam muito sobre essa tal de Mecatrônica. Eu prestei sem nem saber direito o que era e tive a grande sorte de não ter entrado :-)
No ano seguinte, fiz cursinho e estudei melhor quais eram as faculdades que existiam e o que elas ofereciam. Achei que Ciência da Computação se encaixava exatamente no que eu gostava de fazer: software.

2 - O que o levou na época a escolher o BCC da USP?

Estava dentro dos meus objetivos fazer uma faculdade pública e gratuita. Não queria mais que meus pais tivessem gastos com meus estudos e me sentia capaz de entrar numa Universidade pública boa. Prestei UNESP, UNICAMP e USP, além do Mackenzie. A única que eu não entrei, por muito pouco, foi a UNICAMP. Mas mesmo se tivesse entrado, acho que escolheria a USP, não por eu considerar a melhor (acho que UNICAMP e USP são equivalentes), mas pelo fato de eu já morar em São Paulo.

3 - Como você avaliaria sua formação no BCC?

A formação do BCC é excelente. Durante todo o tempo que fiz BCC eu também trabalhava. De manhã ia para as aulas e a tarde ia para o trabalho. Inclusive, tranquei o curso durante 1 ano e meio para morar e trabalhar na Itália. Por essa razão, não tenho como avaliar a formação do BCC de forma isolada da minha formação profissional. Eu aprendia muitas coisas, tanto na faculdade quanto na empresa e acho que os dois ambientes foram importantes para mim.

Mas se eu pudesse avaliar o BCC isoladamente, diria que a formação é básica e sólida. Com isso, quero dizer que o BCC não vai te dar o peixe, vai te ensinar a pescar. No mundo da computação, isso significa que o BCC vai te ensinar a como ir atrás das soluções, como estudar, como pesquisar, como trocar experiências com colegas e professores. Isso é muito mais importante do que aprender essa ou aquela ferramenta ou linguagem.

Além disso, o nível de exigência das disciplinas no BCC costumam ser bastante altos. Claro que têm alguns professores mais fáceis e outros mais difíceis, mas no geral é sempre necessário estudar muito e se dedicar tanto para as provas quanto para os trabalhos (principalmente os Exercícios Programas, que era a parte mais legal do curso).

No geral, aprendi muitas coisas no BCC. Acredito que desenvolvi muito o meu pensamento lógico abstrato e isso é fundamental para quem deseja ser um bom desenvolvedor de software. Matérias como Álgebra II, Análise de Algoritmos, Grafos, Autômatos, etc. servem de base para mim até hoje. Durante o curso, as vezes temos a sensação de que não usaremos nada daquilo na vida profissional, mas isso não é verdade. Pode ser que não usemos exatamente o que aprendemos, mas a estrutura de pensamento que desenvolvemos serve para sempre.

4 - O curso é preparatório para o mercado de trabalho?

Sem dúvida, o curso prepara não só para o mercado, como também para a academia. Sempre tive a impressão de que o BCC tivesse uma preferência pela formação acadêmica dos alunos, mas isso não significa que ao sair de lá a pessoa não se torne um bom profissional. Algo que eu acho que falta um pouco no curso é um pouco de formação na área de humanas. O curso é bem focado nas matérias exatas, porém o mercado de trabalho exige algumas habilidades humanas como relacionamento com os colegas, trabalho em equipes, lidar com clientes e chefia. Algumas disciplinas como "Leitura Dramática" ajudam nesse aprendizado humano, por isso recomendo que os alunos, mesmo que não tenham muito gosto pela área de humanas, que cursem essas matérias e aproveitem ao máximo para desenvolver esse outro lado.

5 - Como foi sua inserção no mercado de trabalho?

Como eu disse, eu já trabalhava mesmo antes de entrar no BCC. Mas do que ouvi falar de todos os colegas que conheci durante o curso, ninguém teve a mínima dificuldade de arrumar bons empregos. Você sai do BCC e as empresas vão te buscar na porta de saída, o nosso mercado é muito carente de pessoas com boa formação.

6 - Atualmente, quais são as dificuldades iniciais enfrentadas por quem está se inserindo no mercado?

Acho que a maior dificuldade está mesmo ligada ao lado humano. O ambiente corporativo nem sempre é tão amigável e acolhedor quanto a universidade. Existe concorrência entre profissionais, existe ganância e existe alguma incompetência. Lidar com isso não é fácil. As pessoas da área da computação normalmente (mas não sempre) têm dificuldades de expressar sentimentos e lidar com questões humanas. Eu diria que numa faculdade de computação você trabalha muito a cabeça, mas que na vida lá fora você precisará trabalhar e manter um corpo saudável para suportar tanto pensamento lógico abstrato e lidar com as emoções que o mercado de trabalho impõe.

7 - Quais as diferenças que você identifica no mercado de trabalho, entre quem se formou no BCC da USP e em outros cursos similares de outras universidades?

Essa é uma questão muito delicada e polêmica. Não podemos generalizar nada. Tenho colegas que nem sequer têm diplomas universitário e que são excelentes profissionais. Também já vi alguns formados na USP que eram profissionais medianos. Eu acho que o que define um bom profissional vai além de qual universidade ele se formou. Apesar de não existir uma regra absoluta, existe a estatística. É mais comum pessoas formadas no BCC ou cursos de mesmo nível crescerem mais rápido profissionalmente. Toda dificuldade que o aluno passou durante o curso servirá de base para enfrentar as dificuldades na vida profissional e normalmente ele se sairá melhor.

Acredito que a formação profissional depende muito mais do esforço e interesse do aluno em se desenvolver. Um aluno que terminou o BCC depois de 4 anos, mas que só se esforçava minimamente para tirar 5 e ser aprovado nas matérias provavelmente será menos competente do que um que cursou uma universidade de qualidade inferior, mas que se esforçou e tirou 10 em tudo que fez.

8 - Em processos seletivos e em entrevistas de emprego, como pesou o fato de você ter se formado no BCC da USP?

Sem dúvida, ter graduação no BCC do IME tem muito peso. Se a avaliação numa entrevista de 2 profissionais for exatamente a mesma, mas um deles tiver BCC e o outro não, quase certamente a empresa ficará com o do BCC.

9 - Como é a rotina do profissional que trabalha com a Ciência da Computação na prática?

Depende muito da área em que esse profissional decide se especializar. A Ciência da Computação é uma disciplina muito abrangente. Você pode decidir se especializar em áreas bem diferentes como imagens, sons, algoritmos, otimização ou sistemas distribuídos. Até existe uma intersecção entre os ramos da computação, mas cada área escolhida tem muitas particularidades. Eu escolhi a área de sistemas. Minha rotina sempre foi desenvolver software para usuário final, no começo para desktops e depois para Web. Fiz também alguns poucos projetos para dispositivos móveis.

A rotina desse tipo de trabalho é interagir com os clientes ou usuários do sistema, entender as suas necessidades e transformar tarefas manuais e repetitivas em soluções de software amigáveis e robustas. Depois de entender o que o cliente deseja, vem a parte técnica de desenhar o projeto (modelagem), escrever código, escrever testes, reescrever código antigo, etc. Desde 2001 comecei a estudar métodos ágeis e utilizo os ensinamentos desses métodos para ser mais produtivo.

Como trabalho com sistemas para Internet, conheci um pouco sobre cada tecnologia existente. A tecnologia muda muito e temos o dever de ler muito e estarmos atualizado com as melhores linguagens e práticas de programação. Já trabalhei com Visual Basic, Java, PHP, RubyOnRails. Também é necessário um certo conhecimento com HTML, CSS e boas práticas de design visual.

10 - Em termos práticos, qual a diferença entre os cursos de Ciência da
Computação, Engenharia da Computação e Sistema de Informação? Para quais tarefas cada profissional estaria mais apto em uma empresa?

Até onde eu sei, Ciência da Computação tem um foco maior no desenvolvimento de software e a Engenharia também lida com Hardware (a parte física da computação). Hoje em dia essas áreas se sobrepõem muito, mas em linhas gerais, o engenheiro irá projetar o chip, os componentes ou os circuitos de um computador e o Cientista erá escrever o software que rodará e utilizará da melhor maneira os recursos desse computador. A área de Sistema de Informação eu conheço pouco, mas entendo que também é desenvolvimento de software, mas com foco em sistemas corporativos ou de automação. Acho que a diferença entre SI e BCC é que a formação do BCC é mais teórica, enquanto de SI lida com questões mais práticas do dia-a-dia do profissional. Acho que SI é uma formação mais de curto prazo, enquanto de a Engenharia e o BCC são formações mais básicas e de longo prazo.

11 - Qual a remuneração esperada de um recém formado em Ciência da Computação?

Novamente depende muito da área e do profissional. Os salários variam de R$3000 a R$4500 para os recém formados.

12 - Você percebeu uma evolução salarial compatível com a sua capacidade, formação e experiência profissional?

Com certeza tive uma grande evolução salarial. Mas o salário não é a única medida de sucesso profissional. Já tive momentos em que escolhi ganhar um salário menor diante de um desafio ou oportunidade de aprendizado que eu considerava importante para minha carreira. Reconhecimento por parte das pessoas e da comunidade, formação de redes de relacionamentos, benefícios como viagens, apoio por parte da chefia a iniciativas pessoais também são medidas para a saúde e sucesso profissional. Hoje talvez não ganhe o melhor salário do mercado, mas acho que sou respeitado e tenho uma qualidade de vida muito boa.

13 - Você enxerga reais perspectivas de evoluir no mercado de trabalho?
Como foi sua estratégia para construir sua carreira?

O mercado de tecnologia oferece muitas oportunidades, talvez mais do que qualquer outro mercado atualmente. Nossa área ainda tem muito para evoluir. Claro que tudo vai sempre depender do esforço e vontade do profissional.

Acho importante diversificar a carreira, procurando atuar em algumas áreas diferentes, com tecnologias diferentes e fazendo coisas diferentes. Acho muito importante também tentar um tempo fora do Brasil, para conhecer outras culturas e estilos de vida.

Uma estratégia que eu sempre usei foi tentar estar sempre disposto a ajudar quem precisa de ajuda e buscar ajuda de quem já está mais evoluído. Trocar experiências sempre. Aprender com os mais antigos e ensinar os mais novos.

Também é muito importante que o profissional não feche portas ao sair de uma empresa ou instituição. O nosso mercado é pequeno o suficiente para todos se conhecerem e terem boas (ou más) recomendações para dar para os outros sobre você. Devemos fazer sempre o melhor e saber que o mundo dá voltas.

14 - Que conselhos você daria para um jovem que pretende prestar vestibular na área de TI?

Estude, estude e estude. Aprenda a gostar de estudar. Aprenda a aprender. Aprenda a ensinar os outros. Goste do que você faz e faça o que você gosta. Não pense que a faculdade será só alegrias. Muitas das coisas que aprendemos na faculdade podem não parecer úteis, mas na maior parte das vezes são. Quando a gente entra na faculdade a gente acha que sabe muito mais do que realmente sabemos e, quando saímos, percebemos que sabemos muito menos do que gostaríamos. Tem muita gente pensando e trabalhando há muito tempo para compor o currículo de um curso. Gente com muita experiência. Temos que confiar que essas pessoas sabem o que estão fazendo. Caso não concordemos com algo, devemos conversar pacificamente e lutar para que as coisas melhorem. Se revoltar não resolve nada. A melhor saída é trabalhar.



A faculdade é um período muito importante na nossa vida. Devemos tentar ao máximo nos divertir e sermos feliz com as escolhas que fizemos. Caso venhamos a perceber que fizemos a escolha errada, temos que ser adultos e assumirmos nosso erro, mudando o rumo para algo que realmente acreditamos.

15 - Atualmente, você observa uma queda de interesse dos jovens pela área
de TI? (Caso a resposta seja afirmativa) Qual a razão desse fenômeno?

Sinceramente, não ouço falar de queda de interesse pela área de TI. Se isso realmente tiver acontecendo, posso dar um palpite totalmente arbitrário sobre as razões para esse fenômeno. Hoje a tecnologia já faz parte do dia-a-dia das pessoas. É algo que está em toda parte. Antigamente era algo misterioso, um conhecimento para poucos, o que acabava atraindo mais pessoas. Hoje, por ser algo comum, perdeu-se interesse. Um outro palpite seria o fato de os cursos terem a tradição de serem difíceis e os jovens de hoje estão fugindo das dificuldades. Mas, como eu disse, são palpites pessoais...

Thursday, February 11, 2010

Apple Web Site Evolution

Just for fun, I've entered Web Archive to get the Apple's website version for the last 10 years.

1997 - this is the first version I could get. It was ugly, red, and left aligned!


1998 - Still left aligned, but cleaner. Apple logo was colored that time.

1999 - Now Apple logo is white on black
2000 - Menu is put on top of page and looks like today's apple site. Home has 1 big picture of a main product and 4 small pictures. Logo is red. Web site is centralized on browser.
2001 - No big changes from 2000.


2002 - The gray menu is very similar to today's Apple WebSite. There's a search field on the bottom of the page, with footer links

2003 - No big changes from 2002. Everything is so gray...

2004 - Mac Mini is launched. Web site is a little bit colored, but the design remains the same.

2005 - Still the same website of 2002.

2006 - Big changes with iPhone's introduction. Website is black. Footer is gray.


2007/2008 - Menu is the same of today's (2010) - The images from webarchive are broken... :-)
Site is designed for 1024px width resolutions. Apple becomes WHITE and clean (like my washing machine). Search field goes up (like spotlight in Mac OS X)

2009-2010 - Website is bigger than ever, you have to scroll down to see the whole page, everything remains white.

Tuesday, January 19, 2010

Vipassana e Times auto-organizados




No início de janeiro, estive num retiro de meditação Vipassana. Eu já havia participado do curso 3 vezes. São 80 meditadores, 40 homens e 40 mulheres. Os cursos são ministrados num centro que fica perto da cidade de Miguel Pereira, no interior do Rio de Janeiro. Os alunos não pagam nada para participar. O sistema sobrevive graças a doações de antigos meditadores, que continuam contribuindo para que outras pessoas tenham os mesmos benefícios que eles tiveram. Além das doações, outro fator que é vital para o sucesso da Vipassana é o trabalho dos voluntários (também chamados de servidores). Enquanto os alunos ficam dedicados exclusivamente ao aprendizado da técnica de meditação, voluntários organizam todo o ambiente para que ele seja o mais confortável e ideal para o meditador. Os voluntários preparam as refeições, cuidam da limpeza e ficam a total disposição para resolver qualquer problema que algum aluno possa vir a enfrentar.



Nessa minha 4ª vez no curso, decidi fazer parte do time de voluntários. Eu aprendi muitas coisas legais nesses dias e gostaria de compartilhar com todos essa experiência.

O primeiro fato que me chamou muito atenção no grupo de servidores é que ele é um exemplo perfeito de time auto-organizado. Não existe uma hierarquia pré-determinada. O que existe (e o que de fato faz com que equipes auto-organizadas funcionem) são:
  • Regras simples que todos procuram seguir e, principalmente,
  • Um objetivo comum muito claro. No caso, o de fazer fazer com que todos os alunos tenham o melhor curso de suas vidas.
O trabalho do servidor se resume principalmente no preparo das refeições. Servimos sempre um café da manhã as 6:30, um almoço as 11:00 e um lanche da tarde as 17:00. Para que tudo fique pronto no horário, precisamos começar o preparo sempre com uma boa antecedência. Além disso, temos um livro de receitas preparado pela organização do curso. Com um pouco de conhecimento prévio de cozinha, as dicas do livro e uma boa dose de colaboração, tudo sai perfeito.


O mais engraçado é que ninguém precisa dizer para ninguém o que precisa ser feito. Todos sabem das regras básicas:
  • Sujou, lavou
  • Depois de usar, coloque de volta no lugar
  • Divida as tarefas, cada um faz uma coisa, segundo suas habilidades.
  • Faça antes o que é mais importante
Eu fiquei muito bom em descascar e cortar legumes! Parece piada, mas depois de 10 dias eu estava adorando lavar, descascar e cortar cenouras, abobrinhas, batatas, cebolas, beterrabas, berinjelas, inhames (até isso tinha).


O time de servidores tinha 7 pessoas fixas e mais alguns servidores em tempo parcial. Éramos 4 homens e 3 mulheres. O Eduardo era o nosso consultor de assuntos "legumísticos". Por ser engenheiro agrônomo, ele entendia tudo de conservação e armazenamento de alimentos. A Inny fazia sempre o chá e o leite dos alunos, além de ajudar a lavar a louça. A tia Sônia, por ter muita prática na cozinha e ser mãe de uma Cheff, coordenava o fogão e solicitava o pré-preparo para nós. O Samuel entendia tudo de alimentos orgânicos. Ele era o rei da salada, molhos e grande conhecedor do aproveitamento de restos de alimentos, como chá com a casca do abacaxi, fermento de casca de maça e o delicioso bosht polonês (beterraba com iogurte). O Nilton, além de ser um ótimo companheiro de quarto, lavava louça melhor do que a Brastemp da minha mãe. O cara era uma máquina. A Tia Sílvia, por ser uma aluna muito antiga, conhecia muito as manhas e estava sempre nos aconselhando, além de ser responsável pelas refeições do professor do curso. O Mateus, também aluno antigo, era o nosso guru! Ele fazia todo o café da manhã para 100 pessoas praticamente sozinho.


Entre os servidores, existe sempre dois gerentes, um para os homens e outro para as mulheres (porque no curso, as pessoas ficam separadas por sexo). Os gerentes não têm superioridade hierárquica em relação a ninguém (aliás, nem sei porque chamam de gerente...) - o papel deles é estar pronto para atender as necessidades dos alunos e a levar questões mais complexas para o professor. Os alunos não podem se comunicar entre si, a única pessoa com a qual eles podem falar é o gerente. Cada curso tem um gerente diferente. Dessa vez foi o Michael para os homens e a Sarah para as mulheres. Ser gerente é uma grande desafio, pois o curso não é fácil e atender a demanda de 40 alunos é bem puxado.


No final de cada dia, os servidores se reúnem com o professor para uma reunião de 15 minutos (qualquer semelhança é mera coincidência). Mas nem todos falam, apenas aqueles que têm algum assunto relevante e que mereça discussão.

Alguns pontos de grande aprendizado numa experiência dessas:
  • Aprender a trabalhar em grupo
  • Reconhecer as habilidades de cada pessoa
  • Respeitar as limitações do outro e ser paciente
  • Seguir e respeitar regras
  • Aprender a servir ao próximo sem a necessidade de receber algo em troca
  • Aprender a ouvir críticas e opiniões adversas, muitas vezes contrárias a sua
  • Reconhecer as condições de trabalho algumas vezes não ideais e fazer o melhor de si
  • Prestar atenção nas nossas próprias ações, se olhar, se observar
  • Saber se perdoar quando fizer algo errado
  • Saber perdoar o outro quando o outro fizer algo errado
  • Viver na rotina e ainda assim ser feliz e fazer as coisas com amor
  • Aprender a viver em paz e a desejar a paz e a harmonia para o outro, independente de quem seja ou do que tenha feito.
  • Aprender que é possível trabalhar junto sem uma hierarquia rígida
  • Aprender que não precisamos de processos e regras complexas para fazer algo bom
  • Simplicidade existe. A técnica de Vipassana é para mim o maior exemplo de Simplicidade.
Agradeço a todos os companheiros servidores pelas enormes lições que eles me ensinaram. Eu desejo que todas as pessoas possam um dia participar de um curso desses, aprender coisas boas como eu aprendi e levar essas coisas para a sua vida e serem mais felizes. Que todos sejam felizes!

Mais algumas informações:

Palestra sobre Vipassana na USP
Palestra sobre Meditação
Meditação e Agilidade
Vipassana, XP e Mudanças sem Medo
Site Vipassana

Wednesday, November 4, 2009

Dissertação de Mestrado

Há algum tempo venho enrolando para publicar a minha dissertação de mestrado. O motivo dessa enrolação é bem simples: eu não terminei de revisar a dissertação. Foram vários e vários comentários que a banca fez no dia da defesa e que eu tinha que alterar no texto.

Bom, eu fiz a primeira revisão e mandei para o meu orientador, mas ele me mandou de volta com mais trocentas mil coisas para mudar. Enfim... é um processo infinito! E o pior é que eu entrei em outra rotina, que fez com que eu tirasse totalmente o foco do mestrado. Como a banca no final aprovou a tese, eu tenho apenas um compromisso moral de revisá-la, o que torna a coisa muito mais difícil de ser terminada. Ou seja, não sei quando vou terminar, se é que eu vou terminar um dia.

Enquanto isso, vou assumir que a versão que eu tenho já está boa o suficiente para publicar num blog. Tudo bem: segundo os acadêmicos, não está boa o suficiente para ser publicada num jornal científico ou na biblioteca digital da USP. Mas isso é assunto para outra sindicância...

Algumas pessoas já leram versões preliminares e parciais dessa dissertação. Algumas partes do texto já foram publicadas, parcialmente em posts desse blog. A tese é, no final das contas, um relato da minha experiência dos últimos 3 anos trabalhando na Locaweb e dos últimos 15 anos como desenvolvedor de software e aluno de Ciência da Computação no IME.
Quem tiver paciência de ler as 145 páginas, é só baixar a dissertação. O texto está bem dividido em duas partes quase distintas:
  • A primeira fala sobre Padrões para Introduzir Novas Ideias, como foi a utilização deles na implantação de métodos ágeis na Locaweb.
  • A segunda fala sobre as relações entre Arte e o Desenvolvimento de Software e faz o link com a primeira parte com o padrão 'Faça Arte'
Como eu disse, ainda faltam fazer as últimas alterações sugeridas pelo meu orientador. Continuo aceitando sugestões e críticas de todos. Se ninguém me escrever nada, poderá ser por 2 motivos:
  1. Ninguém leu o texto
  2. O texto está perfeito
Como sou um homem livre e de bons costumes, caso ninguém mesmo comente, vou assumir o segundo como verdade... :-)

Wednesday, October 28, 2009

Entrevista para a Bluesoft no Encontro Ágil

Agradeço a todo pessoal da Bluesoft por me oferecer a oportunidade de mostrar o meu trabalho. Nessa entrevista, falo brevemente sobre Padrões para Introduzir Novas Ideias. Mais detalhes podem ser encontrados no meu blog.



Tuesday, October 20, 2009

Desvendando O Cerebro Humano Encontro Agil

Para quem quiser, seguem os slides da minha palestra no Encontro Ágil 2009:


The Art of Living

Everyone seeks peace and harmony, because this is what we lack in our lives. From time to time we all experience agitation, irritation, dishar mony. And when we suffer from these miseries, we don't keep them to ourselves; we often distribute them to others as well. Unhappiness permeates the atmosphere around someone who is miserable, and those who come in contact with such a person also become affected. Certainly this is not a skillful way to live.

We ought to live at peace with ourselves, and at peace with others. After all, human beings are social beings, having to live in society and deal with each other. But how are we to live peacefully? How are we to remain harmonious within, and maintain peace and harmony around us, so that others can also live peacefully and harmoniously?

In order to be relieved of our misery, we have to know the basic reason for it, the cause of the suffering. If we investigate the problem, it becomes clear that whenever we start generating any negativity or impurity in the mind, we are bound to become unhappy. A negativity in the mind, a mental defilement or impurity, cannot coexist with peace and harmony.

How do we start generating negativity? Again, by investigation, it becomes clear. We become unhappy when we find someone behaving in a way that we don't like, or when we find something happening which we don't like. Unwanted things happen and we create tension within. Wanted things do not happen, some obstacle comes in the way, and again we create tension within; we start tying knots within. And throughout life, unwanted things keep on happening, wanted things may or may not happen, and this process of reaction, of tying knots—Gordian knots—makes the entire mental and physical structure so tense, so full of negativity, that life becomes miserable.

Now, one way to solve this problem is to arrange that nothing unwanted happens in life, that everything keeps on happening exactly as we desire. Either we must develop the power, or somebody else who will come to our aid must have the power, to see that unwanted things do not happen and that everything we want happens. But this is impossible. There is no one in the world whose desires are always fulfilled, in whose life everything happens according to his or her wishes, without anything unwanted happening. Things constantly occur that are contrary to our desires and wishes. So the question arises: how can we stop reacting blindly when confronted with things that we don't like? How can we stop creating tension and remain peaceful and harmonious?


In India, as well as in other countries, wise saintly persons of the past studied this problem—the problem of human suffering—and found a solution: if something unwanted happens and you start to react by generating anger, fear or any negativity, then, as soon as possible, you should divert your attention to something else. For example, get up, take a glass of water, start drinking—your anger won't multiply; on the other hand, it'll begin to subside. Or start counting: one, two, three, four. Or start repeating a word, or a phrase, or some mantra, perhaps the name of a god or saintly person towards whom you have devotion; the mind is diverted, and to some extent you'll be free of the negativity, free of the anger.

This solution was helpful; it worked. It still works. Responding like this, the mind feels free from agitation. However, the solution works only at the conscious level. In fact, by diverting the attention you push the negativity deep into the unconscious, and there you continue to generate and multiply the same defilement. On the surface there is a layer of peace and harmony, but in the depths of the mind there is a sleeping volcano of suppressed negativity which sooner or later may erupt in a violent explosion.

Other explorers of inner truth went still further in their search and, by experiencing the reality of mind and matter within themselves, recognized that diverting the attention is only running away from the problem. Escape is no solution; you have to face the problem. Whenever negativity arises in the mind, just observe it, face it. As soon as you start to observe a mental impurity, it begins to lose its strength and slowly withers away.

A good solution; it avoids both extremes—suppression and expression. Burying the negativity in the unconscious will not eradicate it, and allowing it to manifest as unwholesome physical or vocal actions will only create more problems. But if you just observe, then the defilement passes away and you are free of it.

This sounds wonderful, but is it really practical? It's not easy to face one's own impurities. When anger arises, it so quickly overwhelms us that we don't even notice. Then, overpowered by anger, we perform physical or vocal actions which harm ourselves and others. Later, when the anger has passed, we start crying and repenting, begging pardon from this or that person or from God: “Oh, I made a mistake, please excuse me!” But the next time we are in a similar situation, we again react in the same way. This continual repenting doesn't help at all.

The difficulty is that we are not aware when negativity starts. It begins deep in the unconscious mind, and by the time it reaches the conscious level it has gained so much strength that it overwhelms us, and we cannot observe it.


Suppose that I employ a private secretary, so that whenever anger arises he says to me, “Look, anger is starting!” Since I cannot know when this anger will start, I'll need to hire three private secretaries for three shifts, around the clock! Let's say I can afford it, and anger begins to arise. At once my secretary tells me, “Oh look—anger has started!” The first thing I'll do is rebuke him: “You fool! You think you're paid to teach me?” I'm so overpowered by anger that good advice won't help.

Suppose wisdom does prevail and I don't scold him. Instead, I say, “Thank you very much. Now I must sit down and observe my anger.” Yet, is it possible? As soon as I close my eyes and try to observe anger, the object of the anger immediately comes into my mind—the person or incident which initiated the anger. Then I'm not observing the anger itself; I'm merely observing the external stimulus of that emotion. This will only serve to multiply the anger, and is therefore no solution. It is very difficult to observe any abstract negativity, abstract emotion, divorced from the external object which originally caused it to arise.

However, someone who reached the ultimate truth found a real solution. He discovered that whenever any impurity arises in the mind, physically two things start happening simultaneously. One is that the breath loses its normal rhythm. We start breathing harder whenever negativity comes into the mind. This is easy to observe. At a subtler level, a biochemical reaction starts in the body, resulting in some sensation. Every impurity will generate some sensation or the other within the body.

This presents a practical solution. An ordinary person cannot observe abstract defilements of the mind—abstract fear, anger or passion. But with proper training and practice it is very easy to observe respiration and body sensations, both of which are directly related to mental defilements.

Respiration and sensations will help in two ways. First, they will be like private secretaries. As soon as a negativity arises in the mind, the breath will lose its normality; it will start shouting, “Look, something has gone wrong!” And we cannot scold the breath; we have to accept the warning. Similarly, the sensations will tell us that something has gone wrong. Then, having been warned, we can start observing the respiration, start observing the sensations, and very quickly we find that the negativity passes away.




This mental-physical phenomenon is like a coin with two sides. On one side are the thoughts and emotions arising in the mind, on the other side are the respiration and sensations in the body. Any thoughts or emotions, any mental impurities that arise manifest themselves in the breath and the sensations of that moment. Thus, by observing the respiration or the sensations, we are in fact observing mental impurities. Instead of running away from the problem, we are facing reality as it is. As a result, we discover that these impurities lose their strength; they no longer overpower us as they did in the past. If we persist, they eventually disappear altogether and we begin to live a peaceful and happy life, a life increasingly free of negativities.

In this way the technique of self-observation shows us reality in its two aspects, inner and outer. Previously we only looked outward, missing the inner truth. We always looked outside for the cause of our unhappiness; we always blamed and tried to change the reality outside. Being ignorant of the inner reality, we never understood that the cause of suffering lies within, in our own blind reactions toward pleasant and unpleasant sensations.

Now, with training, we can see the other side of the coin. We can be aware of our breathing and also of what is happening inside. Whatever it is, breath or sensation, we learn just to observe it without losing our mental balance. We stop reacting and multiplying our misery. Instead, we allow the defilements to manifest and pass away.

The more one practices this technique, the more quickly negativities will dissolve. Gradually the mind becomes free of defilements, becomes pure. A pure mind is always full of love—selfless love for all others, full of compassion for the failings and sufferings of others, full of joy at their success and happiness, full of equanimity in the face of any situation.

When one reaches this stage, the entire pattern of one's life changes. It is no longer possible to do anything vocally or physically which will disturb the peace and happiness of others. Instead, a balanced mind not only becomes peaceful, but the surrounding atmosphere also becomes permeated with peace and harmony, and this will start affecting others, helping others too.

By learning to remain balanced in the face of everything experienced inside, one develops detachment towards all that one encounters in external situations as well. However, this detachment is not escapism or indifference to the problems of the world. Those who regularly practice Vipassana become more sensitive to the sufferings of others, and do their utmost to relieve suffering in whatever way they can—not with any agitation, but with a mind full of love, compassion and equanimity. They learn holy indifference—how to be fully committed, fully involved in helping others, while at the same time maintaining balance of mind. In this way they remain peaceful and happy, while working for the peace and happiness of others.

This is what the Buddha taught: an art of living. He never established or taught any religion, any “ism”. He never instructed those who came to him to practice any rites or rituals, any empty formalities. Instead, he taught them just to observe nature as it is, by observing the reality inside. Out of ignorance we keep reacting in ways which harm ourselves and others. But when wisdom arises—the wisdom of observing reality as it is—this habit of reacting falls away. When we cease to react blindly, then we are capable of real action—action proceeding from a balanced mind, a mind which sees and understands the truth. Such action can only be positive, creative, helpful to ourselves and to others.

What is necessary, then, is to “know thyself”—advice which every wise person has given. We must know ourselves, not just intellectually in the realm of ideas and theories, and not just emotionally or devotionally, simply accepting blindly what we have heard or read. Such knowledge is not enough. Rather, we must know reality experientially. We must experience directly the reality of this mental-physical phenomenon. This alone is what will help us be free of our suffering.

This direct experience of our own inner reality, this technique of self-observation, is what is called Vipassana meditation. In the language of India in the time of the Buddha, passana meant seeing in the ordinary way, with one's eyes open; but vipassana is observing things as they actually are, not just as they appear to be. Apparent truth has to be penetrated, until we reach the ultimate truth of the entire psycho-physical structure. When we experience this truth, then we learn to stop reacting blindly, to stop creating negativities—and naturally the old ones are gradually eradicated. We become liberated from misery and experience true happiness.

There are three steps to the training given in a meditation course. First, one must abstain from any action, physical or vocal, which disturbs the peace and harmony of others. One cannot work to liberate oneself from impurities of the mind while at the same time continuing to perform deeds of body and speech which only multiply them. Therefore, a code of morality is the essential first step of the practice. One undertakes not to kill, not to steal, not to commit sexual misconduct, not to tell lies, and not to use intoxicants. By abstaining from such actions, one allows the mind to quiet down sufficiently in order to proceed further.

The next step is to develop some mastery over this wild mind by training it to remain fixed on a single object, the breath. One tries to keep one's attention on the respiration for as long as possible. This is not a breathing exercise; one does not regulate the breath. Instead, one observes natural respiration as it is, as it comes in, as it goes out. In this way one further calms the mind so that it is no longer overpowered by intense negativities. At the same time, one is concentrating the mind, making it sharp and penetrating, capable of the work of insight.

These first two steps, living a moral life, and controlling the mind, are very necessary and beneficial in themselves, but they will lead to suppression of negativities unless one takes the third step: purifying the mind of defilements by developing insight into one's own nature. This is Vipassana: experiencing one's own reality by the systematic and dispassionate observation within oneself of the ever-changing mind-matter phenomenon manifesting itself as sensations. This is the culmination of the teaching of the Buddha: self-purification by self-observation.

It can be practiced by one and all. Everyone faces the problem of suffering. It is a universal malady which requires a universal remedy, not a sectarian one. When one suffers from anger, it's not Buddhist anger, Hindu anger, or Christian anger. Anger is anger. When one becomes agitated as a result of this anger, this agitation is not Christian, or Jewish, or Muslim. The malady is universal. The remedy must also be universal.

Vipassana is such a remedy. No one will object to a code of living which respects the peace and harmony of others. No one will object to developing control over the mind. No one will object to developing insight into one's own nature, by which it is possible to free the mind of negativities. Vipassana is a universal path.



Observing reality as it is by observing the truth inside—this is knowing oneself directly and experientially. As one practices, one keeps freeing oneself from the misery of mental impurities. From the gross, external, apparent truth, one penetrates to the ultimate truth of mind and matter. Then one transcends that, and experiences a truth which is beyond mind and matter, beyond time and space, beyond the conditioned field of relativity: the truth of total liberation from all defilements, all impurities, all suffering. Whatever name one gives this ultimate truth is irrelevant; it is the final goal of everyone.

May you all experience this ultimate truth. May all people be free from misery. May they enjoy real peace, real harmony, real happiness.

MAY ALL BEINGS BE HAPPY

The above text is based upon a talk given by Mr. S.N. Goenka in Berne, Switzerland.

Thursday, October 15, 2009

Desenvolvendo a Inteligência Longe do Computador

No último domingo, no Encontro Ágil, fizemos uma sessão de Birds of a Feather e discutimos alternativas para pessoas de TI desenvolverem sua inteligência longe do computador. A discussão foi maravilhosa e gostaria de compartilhar com todos esse momento incrível do Encontro Ágil. O vídeo é longo, mas vale muito a pena parar um tempo para refletir sobre tudo que foi dito nessa conversa de pessoas de várias regiões do Brasil, com históricos completamente diferentes, porém, com algo em comum.

Confira o vídeo: