16/Apr/2008
Running Java 6 on a Mac 
Following the recent trends on Planet TW, George and I decided to share our homage to those who, like us, miss (or don't) running Java 6 on a Mac :-)
16/Apr/2008
Don't let you Mac fall asleep 
If you ever got your Mac screen dimming or your Screen Saver running in the middle of a presentation, here's a quick tip: give you Mac some Caffeine. Before discovering this I used to play around with Energy Settings but always forgot to change it to 'Custom' and, let's face it, switching this functionality on and off in one click is always better than two! Enjoy! :-)
Comments [0] |
Trackbacks [0] |
Posted by at 4:50 AM [Trackback URL]
Technorati Tags: mac presentation
13/Apr/2008
What happened to the System Metaphor? 
It's been a while since I read the 2nd Edition of "XP Explained" and I really enjoyed the emphasis on separating practices from values and principles. If you try to map the original 12 XP Practices to the new primary and corollary practices, you will notice that it's not a one-to-one map. And that's great! Practices are good when you are at the Shu level of learning, but they should be tailored to specific situations, and understanding the underlying principles and values is what will help you do that.
Besides Pair Programming and Test-Driven Development, most of the original XP practices are distilled in more than one practice in the second book. Refactoring and Simple Design are better exposed as Incremental Design, while the Planning Game can be recognized in a list of practices such as: Stories, Weekly Cycle, Quarterly Cycle, and even Slack. Although Coding Standards are not explicitly cited as a practice, you can see its importance when reading about Shared Code and Single Code Base. But you will miss one practice in particular from the first book: the System Metaphor.
The System Metaphor was probably the less adopted practice and usually one of the hardest to explain. If you're able to express and design your system in a shared metaphor such as "Payroll is like an Assembly Line", you will see the benefits of this practice shining through: communication with domain experts will be easier and the gap between domain model and implementation will become much shorter. But as it turns out, it is not easy to find a useful metaphor for every system.
If you miss this practice from XP and is looking for the underlying principles behind it, I strongly recommend reading Domain Driven Design, by Eric Evans. Striving to find an Ubiquitous Language to bridge the communication gap between developers and domain experts, and isolating complexity in a rich domain model are goals worth fighting for. In Eric's words:
System Metaphors are not useful on all projects. Large-scale structure in general is not essential. In the 12 practices of Extreme Programming, the role of a System Metaphor could be fulfilled by a Ubiquitous Language. Projects should augment that language with System Metaphors or other large-scale structures when they find one that fits well.Other patterns for large-scale structure are discussed in the book, as well as a lot of other precious material. So if you still haven't done it, go read the book!
Comments [0] |
Trackbacks [0] |
Posted by at 4:39 PM [Trackback URL]
Technorati Tags: xp domain driven design metaphor ubiquitous language
07/Apr/2008
Git tip for Brazilians 
While working with Git on my current project, my pair and I noticed a source of waste when synchronizing with the master repository: in Portuguese "Puxe" means pull, which sounds exactly like push, but with the opposite meaning. Push in Portuguese is "Empurre". Because of that, it always take me a few seconds before figuring out which command to execute. Since we are all for eliminating waste, here's the visual solution in our pairing station… :-)
16/Mar/2008
Impressions from QCon 2008 
Working for ThoughtWorks is a very rewarding experience. After finishing my first project and delivering a Rails app in 1 month, last Friday I had the opportunity to attend QCon London. Overall it was a really nice day and my feeling at the end of the day was that I should have been there on Wednesday and Thursday :-)
I started the day attending the "Architectures You've Always Wondered About" track. The first talk was really good and Randy Shoup talked about the architectural principles behind eBay. I had already read about eBay's transactionless style for achieving availability and scalability through data partitioning, but it was interesting to hear about the way they approach deployment for new code and features. There are no changes that cannot be undone. They have automated deployment tools that manage the dependencies between different components (a la package management systems such as apt) that allows rollout ant rollbacks (a la Rails' migrations) of different pieces of code. Interesting stuff!
The second talk on that track was supposed to be about Twitter's architecture, but for some reason it was cancelled and replaced by an interesting presentation about BBC's new media publishing system. Nothing really ground breaking in terms of technology, but it was interesting to hear about their current process of migrating a huge physical media storage (with guys in motorbikes taking tapes from site to site) to digital format, and how it changes their editorial process… somehow the image of the guy in a motorbike reminded me of the Pigeon's high bandwidth transfer protocol :-)
After lunch, I switched to the "Programming Languages of Tomorrow" track. I first listened to Joe Armstrong's talk about Erlang (and the case for concurrent systems on a multi-core soon-to-arrive future). He is a very entertaining speaker and I think that he successfully delivered his message to the general audience.
Next came Ted Neward with an introduction to Scala for the lazy Java developer. Although I didn't consider myself the audience for this talk based on the title, I was interested to see and learn a little more about Scala. He covered the basics of the language and I enjoyed watching real code instead of slides, but I was hoping to hear more about Scala's concurrency features… maybe lazy programmers are still not worried enough about concurrency :-)
The track finished with an Open Space style session, where participants discussed about which factors are driving the increasing interest and resurgence of different languages. For me this was the most interesting discussion of the day and it strengthened the case for polyglot programmers. One of the topics was that it usually takes years for someone to become an expert at something and that it's harder to leave that knowledge behind to learn something new. I think that it all comes down to whether you want to be a specialist or a generalist and I've already stated my position of trying to be both. Another interesting aspect of the discussion was Martin's point that the evolution happens in cycles and that after a period of stabilization, it's time (again) for broadening the options and looking for new ideas that will lead us to the next big thing. In these times it's important to look for new learning opportunities instead of narrowing your knowledge. I think it's time for me to use the generalist hat for a while… :-)
Finally, the closing panel gave me a good summary of the things I saw and the things I missed. Some of the highlights that I hope will be available at InfoQ soon were Kent Beck's session and keynote, Martin's and Jim Webber's keynote, and Ola's and Venkat's sessions on blending dynamic languages and extending the Java platform.
I was really impressed with the quality of the conference, from tracks, to sessions, and speakers. QCon is one of the best technical conferences I've participated and I recommend it for anyone interested in enterprise software development. I'm looking forward to attending again next year.
Comments [1] |
Trackbacks [0] |
Posted by at 3:23 PM [Trackback URL]
Technorati Tags: conference qcon
24/Feb/2008
Coding Dojo São Paulo @ Agile 2008 
For those of you who didn't know, after going to XP 2007 last year and speaking with Emmanuel Gaillot, I decided to start a Coding Dojo in São Paulo, Brazil. We've been running weekly sessions since last July and after I moved to London, Mariana, Hugo, Fabricio, and others are making sure that the Dojo continues. It has been very fun and educational to organize and run the Dojo, so we decided to share our experiences with the community. We are proposing a 30 minutes Experience Report to be presented at Agile 2008. I wanted to submit this proposal earlier to allow more time for feedback and reviews, but the bureaucracy of moving to another country and the excitement of working with very talented people has kept me busy. But the deadline for submitting session proposals to Agile 2008 is tomorrow, and I didn't want to lose the opportunity of attending and sharing our experiences. We would appreciate any feedback to improve our session. The link to the proposal is here. Thanks!
Comments [0] |
Trackbacks [0] |
Posted by at 6:57 PM [Trackback URL]
Technorati Tags: coding dojo agile conference
11/Feb/2008
Generalist or Specialist: Why not Both? 
For a while I've been planning to write on this subject. The question of whether going broad or going deep into a subject area has always been present in my life. In this post I will scratch some of my current thoughts on the subject. Feedback and other opinions are welcome!
Some Background
My parents always told me that I couldn't be good at everything. But they've always been very supportive on everything I decided to do. Being a great musician, magician, and programmer was not an easy task, but that never stopped me from trying. But then I read something funny that became a good argument for a while…The Specialist Paradox
An specialist is someone who knows more and more about less and less, ultimately knowing everything..... about nothing!That even made me review my resumé to remove any reference to the word "specialist" and include the word "generalist". :-)
Swinging the pendulum
But I forgot that you can always change the argument to take the other extreme and come up with a "Generalist Paradox". And then I watched Kent Beck's keynote speech last year at XP 2007 about Ease at Work. We are always trying to be the best, but then we realize how bad we are and start thinking we are the worst. A great lesson that I took from his words is that while swinging that pendulum back and forth, we never stop to think that neither of those extremes are good. Being at ease is trying to find how to stay in the middle.In our discussion, the extremes of the pendulum would be the common view that generalists are best at defining the problem or goal and specialists are best at solving the problem or "executing the plan":
While researching about this subject, I learned that you have similar concepts in Biology (highlights are mine):A generalist species is able to thrive in a wide variety of environmental conditions and can make use of a variety of different resources (for example, a heterotroph with a varied diet). Specialist species can only thrive in a narrow range of environmental conditions and/or have a limited diet. Organisms do not fit neatly into either group, however. Some species are highly specialized, others less so, while some can tolerate many different environments. In other words, there is a continuum from highly specialized to broadly generalist species.We can leverage that same idea, letting go the "Us vs. Them" argument and starting to think about generalist and specialist as complementary skills. David Armano has already suggested changing the "or" to "and", but I would dare taking it one step further…
It's all about context
Specialty is contextual. Anyone in my family would consider myself a specialist in programming and software development. But they don't have a clue that Computer Science is a broad area with so many fields. Some interest me more than others, so I could say I'm a generalist at that level. But since my interest in software development and Agile Methods is greater than other fields, one could say I'm a specialist, although I wouldn't consider myself an expert at anything :-)I can see the XP principle of Self-Similarity applied here. I think that the above picture is just a simplification of reality. There are some dots underneath the surface that you can only connect if you specialize a little bit. And I would say that the same fractal structure would appear as you go deeper and deeper into your endless search for knowledge. Sometimes you will have to go back and look broader for a while, but that's not wasted effort. That's why I now see value in being both a generalist and a specialist in different contexts.
Comments [1] |
Trackbacks [1] |
Posted by at 12:14 AM [Trackback URL]
Technorati Tags: generalist specialist agile xp
21/Jan/2008
Starting 2008 on the right foot 
From now on, I will be writing in English. I've been planning to do this for a while, but the "New Year" is always a good time for a personal retrospective and some planning for the future (although I think shortening the feedback loop to less than one-year would be beneficial). Besides the usual reasons for writing in another language (training, reaching a wider audience), I think that anyone seriously working with software development should be able to at least read English. I might still publish translated versions of some of my posts, but don't count too much on that.
Speaking of changes, it's finally time to annouce the good news:
I'm a ThoughtWorker
Some of you may already know, but since I've started interviewing back in 2006, more than one year has passed and many things happened. The one big thing that was holding me back was my Master's, but since I've finished it back in June, things started moving. After a lot of paperwork going back and forth between Brazil and the UK, I've finally managed to get my Work Permit and entry clearance approved. My passport couldn't have arrived in a better time than one week before Christmas. It was the gift I've been wishing throughout the year.
I want to say I'm very excited to work for ThoughtWorks! For those of you who were close during all this time, I want to say a big THANK YOU. My family and friends have been very supportive. But now is time to pack my stuff and give a step forwards. I'm starting in the second week of February and am looking forward to report the news. Wish me luck!
Comments [9] |
Trackbacks [1] |
Posted by at 1:32 AM [Trackback URL]
Technorati Tags: thoughtworks personal announcement
20/Dec/2007
Os Valores Ágeis não se Expressam em Palavras, mas em Ações 
A ImproveIt está deixando o mercado de serviços e consultoria em Métodos Ágeis e XP. Estava escrevendo esta resposta como um comentário e percebi que estava ficando grande demais, então resolvi dedicar um post, afinal, meus amigos da ImproveIt merecem :-)
Mais importante que vender e disseminar os valores ágeis é mostrar que eles fazem parte da sua filosofia de vida. Com essa mudança vocês demonstram tudo aquilo que é difícil de vender em XP mas que faz muito sentido para quem usa: coragem, abraçar as mudanças, transparência na comunicação e envolvimento com a comunidade.Até poucas semanas atrás eu não conhecia o pessoal da ImproveIt pessoalmente. Tive o prazer de conhecê-los graças aos eventos de rails em São Paulo e no Rio. Agora posso afirmar com certeza que eles têm o talento e o conhecimento necessários para que o sucesso venha rapidamente.
Tenho certeza que a mudança não é uma reação aos pontos levantados pelo Vinicius. Apesar de eu mesmo ter participado e até promovido os treinamentos de Scrum do Boris, concordo com as críticas. Tanto que, se olharem meu currículo, coloco o treinamento como curso e não certificação. Prefiro olhar pelo lado positivo da mudança. Acho que a mudança de rumos está muito mais relacionada com as possibilidades que enxergam no futuro do que com o que já fizeram no passado. E é exatamente esta atitude que eu admiro. Mudar sem medo. Coragem.Desejo muito sucesso a todos: Vinicius, Tapa, Rafael, Felipe e Leandro (o único que não conheci pessoalmente, infelizmente). Continuem produzindo produtos de qualidade assim como fizeram com os treinamentos, palestras, consultorias, posts e podcasts sobre Métodos Ágeis e XP. Um grande abraço!
15/Dec/2007
[ANN] Certified Scrum Master em 2008 
Pessoal, meu amigo Boris Gloger, da SPRiNT-iT, me pediu um favor para divulgar os próximos cursos oficiais de Certified Scrum Master no Brasil. Duas turmas estão agendadas para Janeiro, uma em São Paulo e outra em Recife. Para mais detalhes, acesse diretamente:
Eu fiz esse treinamento em Abril e cheguei a apresentar um seminário sobre o assunto no IME (slides). São dois dias repletos de atividades e práticas que te farão questionar algumas premissas e trarão uma breve experiência do desenvolvimento ágil com Scrum. Altamente recomendado!
Comments [0] |
Posted by at 12:31 AM [Trackback URL]
14/Dec/2007
RSpec 1.1.0 
O David Chelimsky, core developer da equipe do RSpec, anunciou hoje o lançamento da versão 1.1.0 na lista de discussão do projeto. Essa versão é um grande marco para o projeto, trazendo novas funcionalidades e diversas melhorias:
- Story Runner: Como já falei aqui no blog, o projeto RBehave foi integrado ao core do RSpec, ganhando o nome de Story Runner. Com isso, o RSpec se torna um framework full-stack para BDD. Além de definir o comportamento do seu código, você também pode colaborar com seu cliente através de cenários executáveis, escrevendo os testes de aceitação para sua aplicação. A possibilidade de escrever story tests em texto puro é um grande passo nessa direção. Quem assistiu minha palestra no Rio on Rails teve a oportunidade de ver uma demonstração dessa funcionalidade.
- Integração com o Rails 2.0: A nova versão está integrada com o novo Rails 2.0. O plugin RSpec on Rails também foi atualizado para aproveitar a funcionalidade dos story tests na sua aplicação Rails.
- Transição fácil do Test::Unit: Uma funcionalidade bem interessante para quem está migrando do Test::Unit para o RSpec. Para migrar, você precisa apenas:
- incluir um 'require spec' no seu arquivo de teste;
- trocar a definição da subclasse de TestCase 'class ClassContextTest < Test::Unit::TestCase' por uma descrição do tipo 'describe "class in context" do';
- Converter os métodos de teste 'def test_should_do_this' por blocos 'it "should do this" do';
- Transformar asserts 'assert_equal 2, some_calculation' em shoulds 'some_calculation.should == 2';
- remover a dependência com Test::Unit, removendo o 'require 'test/unit'
- Exemplos encadeados: Agora você pode escrever um bloco "describe" dentro de outro.
Comments [0] |
Posted by at 5:52 PM [Trackback URL]
14/Dec/2007
Rio On Rails 
Esse fim de semana tive a oportunidade de conhecer o Rio de Janeiro e participar do Rio on Rails, organizado pelo pessoal da ImproveIt. O sábado foi repleto de Ruby e Rails e no domingo tive um tempinho para passear e conhecer um pouco da cidade maravilhosa.
Os organizadores estão de parabéns. As palestras foram muito bem escolhidas e acho que deram um bom gostinho de como é divertido programar em Ruby e Rails para quem nunca tinha experimentado. Como sempre, eventos são uma excelente oportunidade de conhecer gente nova e trocar experiências e o Rio on Rails não deixou a desejar. Conheci o Ronaldo Ferraz, que falou um pouco sobre DSLs, o Demetrius Nunes, um dos pioneiros na adoção de Rails no Brasil, o Eduardo do site o Curioso, todo o pessoal da Improveit e do projeto Lucidus e mais um monte de gente que não vou lembrar do nome, mas que estavam presentes para fazer mais um grande evento da comunidade Rails no Brasil.
Minha palestra sobre BDD e RSpec foi uma evolução da palestra no RejectConf'SP. Com mais tempo para explicar os conceitos e fazer uma demonstração mais calma, acho que consegui passar uma idéia melhor da experiência de programar com BDD em Ruby e Rails. Os slides já estão disponíveis aqui, assim como o esqueleto da aplicação demo que desenvolvi, com o passo-a-passo da demonstração. Quem quiser também consegue pegar a versão final do código apresentado.
Uma coisa legal que eu consegui terminar de preparar para a apresentação foram algumas das novidades do RSpec 1.1.0, como o Story Runner (integração com o RBehave, que eu apresentei no screencast do Dojo@SP), os plain text story tests e o protótipo do editor de story tests no browser.
Para rodar os exemplos, você precisará do Rails 1.2.6 (não fiz update pro 2.0 na palestra pois o patch da integração do RSpec com o Rails novo saiu na sexta a noite e não quis arriscar a demonstração ao vivo), do RSpec e do Rcov, caso queira verificar a cobertura (gem install rcov). Quem gostou da integração do Autotest com o Growl que eu usei na demonstração, pode pegar meus arquivos de configuração no Google Groups do Dojo@SP (não esqueça de instalar o Autotest com 'gem install ZenTest').
Comments [2] |
Posted by at 5:10 PM [Trackback URL]
03/Dec/2007
WebDevCampSP 07 
Esse fim de semana participei de mais um evento que não estava planejado (essa é a graça de ser ágil, não?), o WebDevCampSP 07. Apesar do evento contar com um número menor de participantes, gostei bastante por ser mais "intimista". O estilo "desconferência" acabou me contagiando e, depois de assistir as palestras do sábado e de conversar com o Akita e o Dairton acabei preparando uma mini-palestra sobre testes.
A palestra foi curta, mas minha idéia era encarar o assunto de outro ponto de vista: ao invés de falar as vantagens de testar seu código, foquei nos riscos que a falta de testes pode causar. Além disso, falei um pouco também sobre diferentes tipos de teste, ferramentas que podem facilitar sua vida e fiz uma demonstração de como gravar um teste de aceitação do Selenium com o Selenium-IDE. Se você se interessar pelo assunto, os slides já estão disponíveis.
Foi bom reencontrar amigos e conhecer novas pessoas. Os organizadores e patrocinadores estão de parabéns! Foram dois dias de aprendizado, troca de experiências e networking. O evento tem tudo para crescer e fazer sucesso no ano que vem.
Lembrando que no próximo fim de semana estou embarcando para o Rio on Rails. Quem estiver interessado na minha palestra e não puder comparecer, vai ter a chance de assistir um "demo" na próxima reunião do Dojo@SP. Espero vocês lá!
Comments [2] |
Posted by at 3:48 PM [Trackback URL]
21/Nov/2007
RejectConf SP'07 
Continuando com a maratona, participei de mais um evento excelente. Sou um pouco suspeito para falar pois dessa vez tive a oportunidade de ajudar na organização do primeiro RejectConf para a comunidade Ruby e Rails brasileira. Não posso deixar de agradecer ao Akita, à Caelum e ao Prof. João Eduardo Ferreira do CCSL/IME-USP pelo apoio e ajuda na organização do evento.
<a href="http://gallery.mac.com/akitaonrails#100041"><img src="http://gallery.mac.com/akitaonrails/100041/IMG_0713.jpg?derivative=medium&source=web.jpg&type=medium" alt="Abertura do evento com jef" width="240" height="180" class="flickr_photo"/></a>
Apesar de termos atrasado um pouco o cronograma, já sabíamos que isso podia acontecer (big design up-front não funciona :P). No entanto, a qualidade dos palestrantes e a participação do público em geral superou e muito minhas expectativas.
Foi muito bom conhecer algumas pessoas pessoalmente, como o Eduardo Fiorezi, o Vinicius, Tapajós e o pessoal da ImproveIt, além de reencontrar amigos e conhecidos, como o Carlos Villela, o Fernando Meyer, o Fabio Kung, Paulo e Jonas da Caelum, o Hugo e o George (ainda não o conhecia) do Pagestackr, meus amigos do IME (Pedro, Dairton, Giuliano, Fabricio, Jef) e muitos outros que com certeza estou esquecendo de listar.
Palestras e Palestrantes
Do ponto de vista técnico, todas as palestras foram excelentes. O conteúdo abrangia diferentes níveis de conhecimento, agradando aos iniciantes e aos desenvolvedores mais avançados. Todo o material vai ser disponibilizado, assim como os vídeos gravados no evento.Os palestrantes estão de parabéns! Foi incrível como algumas palestras pareciam se "linkar" umas com as outras. Parecia até que havíamos combinado algo antes :-)RSpec e RSpec on Rails
Minha palestra foi curta e, apesar de uns probleminhas técnicos (bugzinhos), correu tudo bem. Eu falei brevemente sobre o conceito de Behaviour-Driven Development e mostrei um pouco de código ao vivo. Desenvolvi uma aplicação demo para obter feedback (positivo ou negativo) das palestras e deixei meu notebook ligado para quem quisesse votar durante o evento. Apesar de alguns problemas com a rede wireless, algumas pessoas conseguiram acessar e votar. Tirei um screenshot do widget criado pelo Safari 3 mostrando o resultado final da votação. É claro que o placar é irrelevante a não ser pelo fato de que o coffee-break venceu disparado!! :-)
Os slides da minha palestra já estão disponíveis para download, assim com o código-fonte da aplicação demo e as notas que usei na implementação ao vivo.
Se você tem alguma sugestão para melhorar minha palestra, por favor deixe um comentário. Você gostou ou não gostou da minha palestra? Aprendeu alguma coisa? O bug na demonstração atrapalhou muito? Você prefere ver código ou slides? Essa palestra será a base do que vou apresentar no próximo evento de dezembro, o RioOnRails, por isso sua opinião é muito importante. Lá terei mais tempo para elaborar os conceitos e mostrar um demo mais completo e detalhado. Espero vocês lá!
Mais uma vez, todos os que participaram estão de parabéns. Tenho consciência que podemos melhorar muitas coisas para o ano que vem, mas o importante é que demos o primeiro passo. Acredito que daqui pra frente a comunidade Ruby e Rails brasileira só tende a crescer.
Comments [1] |
Posted by at 12:43 AM [Trackback URL]
20/Nov/2007
Conexão Java 07 
Final de feriado chegando. É hora de voltar a ativa e contar como foram os eventos da última semana. Primeiro um pouco sobre o Conexão Java.
Sexta-Feira
Foi a primeira vez que participei do Conexão Java e gostei bastante do evento. Além de re-encontrar amigos, as palestras que assisti foram excelentes. Na sexta-feira o Alexandre Magno falou um pouco sobre Scrum e, apesar de ter precisado sair no meio da palestra, os comentários que ouvi foram todos positivos. Na sexta acabei assistindo só essa palestra, pois fiquei o resto do dia ajudando o Carlos Villela terminar seus slides (percebam que minha participação foi importante.. he he).
Sábado
No sábado, o keynote do CV criticou os "arquitetos de uma nota só" que preferem usar sempre a mesma ferramenta para resolver qualquer problema. Além de argumentar sobre a importância da plataforma Java vs. da linguagem Java, os tópicos levantados deixaram a platéia preparada para as próximas apresentações.
O Philip Calçado re-apresentou a palestra de arquitetura do Just Java (dessa vez sem o Paulo) e agradou bastante o público. Apesar de eu já ter assistido a palestra, foi bom para ouvir mais um pouco sobre as "arquiteturas Java do passado". Particularmente achei muito valioso ele ter levantado temas recentes como Domain-Driven Design e DSLs.
Depois foi minha vez. Minha estréia como palestrante foi bem recebida. As pessoas que me procuraram depois da palestra me deram um feedback positivo e alguns comentários online que li (aqui e aqui) me deixaram bastante feliz com o resultado. Espero que tenha conseguido passar minha mensagem, deixando algumas sementes para discussão sobre Métodos Ágeis, XP, Scrum e Lean. Minha apresentação já está disponível para download aqui.
Após minha palestra fomos almoçar numa churrascaria e acabei perdendo a palestra do Vinícius. A última palestra do dia foi do Fernando Meyer, core developer do JBoss, sobre ANTLR e seu uso na criação de DSLs externas. Gostei pois ele mostrou os conceitos básicos de um compilador (parsing, análise léxica, análise semântica, interpretação, geração de código, etc.) e partiu para um exemplo prático de código. Dei uma ajudinha depois da palestra com um bug (essas coisas acontecem) e os slides e o código estão disponíveis no blog do Fernando Meyer.
Espero poder participar de mais eventos como esse. Se você assistiu minha palestra, deixe algum comentário (positivos ou negativos). Feedback é sempre importante e me ajudará a melhorar para as próximas apresentações. O que você gostou e não gostou da minha palestra? Você aprendeu alguma coisa? Algumas das idéias surtiram efeito no seu dia-a-dia?
Comments [1] |
Posted by at 2:32 AM [Trackback URL]







Technorati Tags: thoughtworks fun java mac