DevOpsDays – Agilidade em todos os níveis

Sexta passada estive no evento DevOpsDays, que aconteceu em Santa Clara (Califórnia), no escritório central do LinkedIn. O termo DevOps (criado por Patrick Debois) surgiu no final do ano passado, mais ou menos na época em que Andrew Schafer e Paul Nasrat deram uma palestra na Agile 2009 sobre Infraestrutura Ágil.

Onde Surgiu DevOps?

DevOps tem vários signifcados. O mais óbvio deles, como o próprio termo já diz, significa a união de Desenvolvedores (devs) e Operadores (ops) de Sistemas (também conhecidos como SysAdmins).

Em startups, é muito comum que não exista separação entre Devs e Ops. Nessas empresas, os técnicos sabem tanto escrever o software como dar manutenção e administrar os servidores de produção. Conforme as empresas crescem, começa a surgir a necessidade de especialização nas áreas de desenvolvimento e sysadmins (DBAs, Storages, Rede, Linux, Windows, etc). Problemas começam a surgir quando criam-se silos e a empresa fica dividida entre aqueles que criam o software e aqueles que mantém tudo funcionando em produção. Essa divisão pode ser muito nociva para a empresa, uma vez que os profissionais, ao invés de colaborarem para o sucesso da empresa, ficam num jogo de apontar o dedo um para o outro, na busca de um culpado que, convenhamos, pouco importa para o negócio.

DevOps tem o objetivo de trazer os conceitos e boas práticas aprendidas pelos Engenheiros de Software Ágeis para o mundo dos SysAdmins. Não só isso, DevOps também procura clarear para os desenvolvedores as preocupações (justas) e práticas dos SysAdmins. O principal trabalho do SysAdmin é manter tudo no ar. Qualquer coisa a mais que o desenvolvedor quiser, coloca em risco o trabalho o SysAdmin. O desenvolvedor tem que entender isso e trabalhar como parceiro do SysAdmin. Ele tem que se preocupar para que nada quebre em produção e estar disponível para ajudar o administrador caso algo dê errado. Faz parte do trabalho de devs e ops estarem alinhados e colaborarem um com o outro.
Continue reading

Random Hack of Kindness

This weekend I was working at the first Random Hack of Kindess mundial edition. There were 4 people in our team and we worked on a project called Urban Fact (Fato Urbano in Portuguese). The main idea of this project is to emphasize GOOD orBAD facts in your city. If you see someone throwing the garbage over the streets, just take a picture and post it on twitter using #urbanfact hashtag (or #fatourbano). This picture automatically  goes to the project website, where people can vote, comment and share with friends.
Continue reading

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.
Continue reading

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?

Continue reading

Elevator Bug

This is a common scene in the Condominio São Luiz elevators: every now and then appears a blue screen, or a Windows message telling people in the elevator to contact Microsoft. This morning it happened again. There was some kind of trouble with Adobe Flash Player plugin. “Inform this problem to Microsoft”

2 weeks ago I met another message box in the elevator. “The system has been recovered from a serious error”. If the system had a seriour error and has been recovered, why this message? What if the elevator stops between floor 9 and 10 and you get a message box: “Your elevator is in serious problem, please contact Microsoft for recovery”. I’m terrified. Does anybody has Bill Gates phone number, please?

Would a elevator running Linux or Mac fail the same way? Maybe yes, maybe not. But please, don’t ask me to call Microsoft! I’m stuck in the elevator! Call the fireman!!!

Refactoring Paintings

Refactoring is a well known technique in software development. In short terms, refactoring is to execute a sequence of small well defined steps with the intention to let your code base more clear, more beautiful, more elegant. The result of a continuous refactoring practice is a simpler and easier to maintain software project. There many times also when refactoring takes the programmer to create new abstractions and code generalizations.

Let’s go to a simple example: suppose we are programming a Person entity class. This class contains attributes like name, weight, age, gender, spoken language. After some time, I find out that I need to insert cats in my system for some reason. Continue reading

#QCON – Functional Programming, Music and Art

Last month, at QCON, I was in a great talk about functional programming languages (like Haskell) and their benefits to the Art world. The title of the talk was “How Functional Programmers can
Help, Inspire, or even Be Artists”. First of all I’d like to emphasize that all good programmers are artists, and as Richard Gabriel said 6 years ago, we programmers should be trained like artists. This is the major problem of our Computer Science Courses.

We all know artificial intelligence and computer tools are getting better and better. Right know we can easily produce things like this video:

Continue reading

Two Big Changes

I’d like to use this post to announce 2 big changes in my life. The first one is that since now I will post here in English instead of Portuguese. With this, I’d like to make my blog more understandable outside Brazil. I’m not sure I’m ready to write everything I think in a foreign language, but the only way to find it out is to begin writing and see what happen. So, here I am. For the practice I will also write some poetry in English, in my poetry blog.

The second change in my life is that Continue reading