Pilha de Livros

Pilha de livros sobre desenvolvimento de software

Após quase 1 mês esperando, finalmente minha compra feita na amazon.com chegou. Resolvi comprar uma pequena pilha composta por três livros para economizar no frete que as vezes pode até ficar mais caro que o próprio livro como ocorreu em uma outra compra que fiz onde paguei U$9,90 no livro e aproximadamente U$14,00 no frete.

Neste atual pedido comprei os seguintes livros:

  • Domain-Driven Design – Eric Evans
  • Patterns of Enterprise Applications Archittecture – Martin Fowler
  • The Pragmatic Programmer – Andrew Hunt / David Thomas

Escolhi esses livros por ver muitas recomendações e também por ser sobre um tema que me interessa muito, arquitetura e desenvolvimento de software, onde pretendo me especializar.

Já dei uma pequena folheada nos três livros e mesmo ainda não lido todos, pude ver que realmente possuem um conteúdo muito bom. Agora é só arrumar tempo entre o trabalho e a faculdade para conseguir lê-los. ;)

Algumas fotos que tirei dos livros:

Pilha de Livros

Cuidados com o método toString() em Java

Costumei ver algumas vezes trechos de códigos em Java onde seus desenvolvedores utilizaram o método toString() como um método conversor para String, quando na verdade a finalidade desse método é somente permitir que se obtenha algum representação significativa de um determinado objeto. A classe Object, que é a classe primordial possui este método e como todas as outras classes são herdadas da classe Object, todas elas têm um método toString().

Irei mostrar dois exemplos dos que mais costumo ver e também mostrar alguns cuidados que deve-se tomar:

Pegar um parâmetro da requisição:

String value = request.getParameter("parametro").toString();

De cara já é um código estranho, pois não existe a necessidade de converter o valor do parâmetro para String já que o método getParameter() já retorna uma String. Outro problema é que caso o parametro não exista você vai receber um belo NullPointerException. O correto seria:

String value = request.getParameter("parametro");

Pegar atributo da requisição:

String value = request.getAttribute("parametro").toString();

Parecido com o primeiro exemplo, caso o atributo não existe será lançado um NullPointerException. Como este método retorna um Object realmente devemos converter o valor do atributo para o tipo esperado, mas uma melhor forma de fazer essa conversão seria:

String value = (String) request.getAttribute("parametro");

Com isso deixo um pequena dica de como evitar bugs…

Emoção Art.ficial – Emergência (4ª Bienal de Arte e Tecnologia)

No dia 05/09 fui ao Itaucultural com o pessoal da facul para vermos o evento Emoção Art.ficial – Emergência (4ª Bienal de Arte e Tecnologia). Uma breve apresentação sobre o evento segundo o seu próprio site é:

No cotidiano, associamos a palavra emergência a hospitais e ambulâncias. Mas ela traz também outros significados menos óbvios, como realidades complexas surgindo da aplicação de regras simples. O cérebro, o formigueiro, as cidades e os softwares livres são exemplos de emergência sob este ponto de vista não convencional.

No evento pude ver diversos trabalhos, misturando tecnologia, arte e muita criatividade. Uma experiência interessante com a tecnologia e muito diferente, afinal as pessoas que trabalham com TI em geral, estão acostumadas a ver, ouvir e falar muito sobre tecnologia aplicada aos negócios (business).

Algumas dos trabalhos que mais gostei foram:

  • Performative Ecologies, de Ruairi Glynn (Irlandês, 2007)
    Trabalho baseado em robótica, contém quatro robôs que utilizam um software de reconhecimento de padrão facial e que consegue reconhecer a pessoa depois de ter sua foto armazenada.
  • The Mutations of the White Doe, de Nicolas Reeves (Canadá, 1990 – presente)
    Trabalho muito interessante onde a partir de uma música folclórica escandinava The White Doe, um algoritmo conseguiu transformá-la em três esculturas de polímero translúcido.
  • PixFlow #2, de LAb[au] (Bélgica, 2007)
    Trabalho composto de quatro displays dispostos verticalmente. Um software que simula um campo vetorial em que partículas fluem conforme a evolução de sua densidade tomando caminhos imprevisíveis e formando ramificações bem legais.

Fica aí a dica para um programa diferente. ;)