Archive for the ‘livros’ Category

Além dos Malditos Tópicos

Monday, April 17th, 2006

Acabei hoje de ler um dos livros da lista, o Beyond Bulltet Points, de Cliff Atkinson (e acabo de saber que vai sair uma versão atualizada).

É o segundo livro sobre falar em público e preparar apresentações que leio este ano. Este se foca exclusivamente em como preparar uma apresentação de slides no Powerpoint. Sim, em negrito porque o livro se torna irritante quando começa a mandar você clicar em File>Presentation… e outras coisas específicas do editor de slides da Microsoft (o livro é da MS Press).

BBB

É uma pena, porque Cliff tem muito a falar (você pode sentir pelo blog dele). Dicas preciosas sobre como organizar um slide e uma metodologia para criar apresentações bem razoável. Eu diria que vale comprar o livro se você, como eu, tem se vido muito frequentemente pensando em como diabos combinar um diagrama com texto e headlines. O livro não fala sobre falar em público, é apenas sobre organizar uma apresentação, no Powerpoint.

Estou numa dúvida sobre qual vai ser o próximo livro… amanhã de manhã eu decido.

É possível lucrar vendendo PDF?

Monday, April 3rd, 2006

Sim, e muito segundo o pessoal da 37signals (que criou o Rails). Com mais de 5.000 cópias do seu novo livro, Getting Real, a empresa faturou aproximadamente US$120.000,00.

O livro eu ainda não li nem vou ler tão cedo (tem 7 livros novinhos empilhados me esperando em casa e três na minha mochila), mas considerando que a empresa é responsável pelo Rails e por alguns dos aplicativos mais legais dos últimos tempos é de se esperar que seja bom.

Bom ou não, o que importa é que a pirataria (obviamente você pode obtêr uma cópia em alguma rede p2p) não é mais um obstáculo tão grande, ao que parece. Considerando que todos os mecanismos ultra-mega-power contra pirataria falharam é muito estranho isso… sinal dos tempos?

Outra que sempre lança livros em PDF é a PragmaticProgrammers LLC. O melhor é que geralmente eles oferecem um pacote de livro impresso+PDF o que para mim é excelente.

Eu assinei a Safari exatamente para evitar o problema de carregar pilhas de livros de casa pro trabalho e vice-versa. Ainda não encontrei o meio ideal para ler PDFs então eu os utilizo mais para consulta ra´pida após ler os impressos.

Qual o papel da editora na venda de PDFs? Será que o modelo vinga de vez agora?

Extra, Extra! Livro de Ruby do TaQ!!!

Thursday, March 23rd, 2006

Acabo de receber um email do digníssimo Eustáquio Rangel (o TaQ) falando sobre o livro dele:

RubyTaQ

Uau! Enquanto o meu não chega, então não posso comentar mais, dêem uma olhada no que ele falou.

Livros de LISP são engraçados…

Thursday, March 9th, 2006

Ou pelo menos o que eu estou lendo é.

O livro começa com um Hello World, até aí tudo bem… mas o primeiro exemplo mais concreto te ensina a criar uma base de dados simples, um mapa. Ok, nada demais apra um programador experiente. Um mapa com uma função que reproduz uma clásusula WHERE em SQL, com AND, OR e o escambau.

Detalhe que você implementa e entende razoavelmente isso antes de entender como assignalar valores a uma variável!!

Outro fato legal é que quase todo livro moderno traz um pouquinho sobre como utilizar o framework de Unit Test padrão na sua linguagem. Este livro, até odne eu vi, traz um capítulo sobre como implementar um framework de teste.

O exemplo principal do livro poderia ser uma simples biblioteca para catalogar MP3. Mas os caras fazem um servidor com streaming.

Mas não, não se assuste! O livro é totalmente claro e fácil de entender para um programador experiente. Não faz muito minha cabeça essa coisa de exemplo atrás de exemplo (prefiro livros tradicionais) mas o resutlado final é ótimo!

Tate te Faz Atravessar Fronteiras

Wednesday, March 8th, 2006

Bruce Tate, autor do comentadíssimo livro Beyond Java, acaba de lançar no developerWorks da IBM uma série chamada Crossing Borders.

Na série o também autor de Better, Faster, Lighter Java (ótimo livro) fala sobre os motivos que um programador (programador Java no caso mas se aplica a qualquer um) teria para aprender novas linguagens e teconologias. Ele cita:

  • Java não é a linguagem perfeita para qualquer problema.
  • Você pode utilizar as idéias que aprender em Java.
  • Outras tecnologias estão mudando o modo como as próprias tecnologias Java são criadas.

E eu concordo completamente.

No primeiro artigo ele fala de ActiveRecord do Rails, boa leitura.

Iniciando uma Nova Categoria: LISP

Monday, March 6th, 2006

Como alguns já sabem iniciei meus estudos de LISP há pouco. Estou lendo o Practical Common LISP e me divertindo muito com uma linguagem totalmente diferente de tudo que já vi (o mais próximo que cheguei disso foi Python, Ruby e Smalltalk).

PCL

Este ano eu decidi que vou aprender uma linguagem de programação a cada, pelo menos, 3 meses. Ainda que não consiga fazer nada real para meus projetos ‘de verdade’ (i.e. aquilo que você faz fora do quarto e duranto o horário comercial) em LISP, aprender uma linguagem diferente te ensina cosias que você pode aplicar em várias tarefas do seu dia-a-dia. Foi assim com Ruby por exemplo, programar em Ruby me faz pensar em soluções idferentes quando programo em Java, que por enquanto é a linguagem de aplicações que eu uso durante a maior parte do dia (com intervalos de Python, Ruby, C e PERL).

Aliás, este também é um dos conselhos do My Job Went to india ;)

Nota: é interessante que eu sempre tô atrasado com relação ao TaQ :D

Troca de guarda…

Sunday, February 19th, 2006

Acabei de ler o Software Factories no engarrafamento de sexta-feira (experimenta ter que atravessar o sambódromo uma semana antes do carnaval pra conseguir chegar em casa…). Aos poucos vou colocando material sobre o conceito aqui mas o livro em si é bem chatinho, só quem realmente se interessa pelo tema deveria ler. A parte de DSLs é muito pequena e fica mais no ‘linguagens formais’ da coisa, mesmo assim muito por alto.

Comecei a ler na sexta mesmo (depois de passar em casa, fui pra Niterói e, adivinhem? Engarrafamento na ponte…) o livro da Linda Rising e Mary Lynn Manns, Fearless Change: Patterns for Introducing New Ideas.

Se você não lembra, a simpática Linda Rising veio no Brasil ano passado para o SugarLoafPLOP 2005 e acabou dando uma das melhores palestras do ConexãoJava2005 (áudio e slides aqui). Na foto abaixo eu, Rafael Steil e Rodrigo Kumpera (louds para os íntimos) com a autora logo após sua palestra. Sim, meus olhos estavam fechados. Não, não lembro porquê :P.

Beyond Java: Golfinho Poliglota?

Thursday, February 16th, 2006

Como venho acompanhando e escrevendo, a JVM caminha cada vez mais para um modelo multi-linguagem próximo do que o .Net tinha como proposta inicial. Uma apresentação de Grahan Hamilton no JavaPolis 2006 recentemente disponibilizada sobre o futuro da plataforma menciona que já no Dolphin (Java 7, próximo lançamento após o Mustang/Java 6) o suporte à linguagens dinâmicas diretamente no bytecode deverá ser incluído.

Por que isso é tão importante?

Porque é a primeira vez bytecode não utilizado pela linguagem Java é inserido na plataforma Java. Não haveria mais como negar a separação entre as duas coisas.

Se a JVM quer ser a plataforma o futuro (sinto decepcionar tanta gente mas Java é a plataforma do presente faz um tempinho), precisa se adaptar às novas realidades. Java não é a melhor ferramenta sempre: muitas vezes ela é complexa demais (perde para PHP ou Ruby on Rails), muitas vezes é inflexível (perde para Ruby, Python, Smalltalk e LISP) e muitas vezes exige um nível de conhecimento técnico não disponível em uma empresa (perde para VisualBasic, Delphi e PowerBuilder).

Há um bom tempo a Microsoft juntou várias idéias já existentes vindas de Java, Delphi, PERL 6, (o embrião de) Java EE, C++, J++, Visual Basic, DirectX, Applets, XML, etc, etc e misturou tudo no seu .Net. O grande problema na minha opnião é que o maior diferencial da plataforma nunca foi explorado.

Enquanto Java suportava oficialmente uma linguagem e implementar qualquer outra era (possível mas) extremamente trabalhoso, .Net já vinha com uma estrutura para suportar várias linguagens. As linguagens em sí não eram nenhuma novidade, até PERL já tinha algo assim em 2001, mas o apoio de uma organização do tamanho da MSFT colocando máquinas virtuais multi-linguagem na maioria dos computadores do mundo era algo muito interessante.

Mas o mercado de .Net se dividiu em 2: C# para o Elvis, VB para o Mort. Todo mundo usa ASP.Net assim como desenvolvedor Java geralmente (mas nem sempre) usa JSP para conteúdo web.

Então toda aquela diversidade de linguagens simplesmente sumiu. Hoje a Microsoft tenta correr atrás do prejuízo aumentando o suporte à linguagens como IronPython mas neste meio termo pessoas e empresas que investem na JVM ou apenas desejam usar uma VM comercial menos restrita já criaram alternativas (como Jython).

O mesmo está acontecendo com MDA vs. Software Factories. Redmond comprou a idéia (e o passe) de um cara que trabalhava na IBM chamado Jack Greenfield que é um contrapotno ao MDA em diversos aspectos. A idéia original é a mesma: Model Driven Design. Se você não sabe o que é, imagine por enquanto que se trata de colocar um modelo -sejam diagramas UML ou qualquer outro tipo de notação de alto nível para modelagem que não uma linguagem de programação como Java ou C#- num compilador e este gerar não só código mas o sistema inteiro. Não, não é o mesmo que CASE, mas para isso precisamos de um artigo próprio.

O Model Driven da MSFT se difere do do OMG/IBM principalmente no fato de não usar UML. A primeira vez que vi esta discussão eu achei que era apenas mais uma tentativa da Microsoft de vender uma linguagem proprietária de modelagem mas depois percebi que não era apenas isso.

Lembra lá em cima quando disse que Java não é a melhor ferramenta para todos os problemas? Bem, UML também não é. UML foi construída para ser flexível mas suas raízes em ser uma linguagem para ‘documentação e modelagem de sistemas de software orientados a objetos’ é bem visível.

Se é apenas uma questão de levantar o nível de abstração ok, podemos utilizar uma linguagem genérica. O grande problema nesta alternativa para mim é que (tirando outras características dos compiladores de modelo MDA como teórica independência de arquitetura no produto final) estamos apenas substituindo uma linguagem como Java por uma notação gráfica com o mesmo propósito: ser uma linguagem de programação genérica.

A proposta da Software Factory para este problema das linguagens é ao invés de UML/Java/C# utilizarmos uma linguagem específica para aquele problema. A linguagem não precisa ser gráfica mas deveria fazer sentido dentro do domínio, os construtos e primitivas dela devem ser conceitos daquele domínio. Nada abstrato e genérico como um StringBuffer, coisas como Tabelas, Conta, Fluxo, Pedido… estão são as Domain Specific Languages (DSLs).

Ainda é cedo para saber qual modelo vai vingar. Eu voto hoje num modelo híbrido com a parte de DSLs da Microsoft, a padronização e os compiladores do MDA. Quando Java EE 1.3, 1.2, etc trazia (traz!) aquele monte de XML a Microsoft desenvolveu um sistema de metadados de serviços. Tantos anos depois Java EE 5 bebe da mesma fonte mas aplica melhores práticas de desenvolvimento.

E agora, com maior abertura para novas linguagens, Java se aproxima mais das DSLs. Que bom!

Não dá pra ignorar o que vem da Microsoft ‘porque é da Microsoft’. De Redmond saem muitas coisas ruins mas ocasionalmente saem coisas boas. Como eu li em algum lugar na Internet dia desses “a Microsoft tem desenvolvedores brilhantes, o problema dela deve ser os gerentes”.

Mesmo assim, a MSFT não é a única a investir neste ramo. Fowler fala mais sobre isso num paper recente que, aliás, deve ser lido por qualquer um interessado no tema.

200 Páginas em 4 ônibus

Thursday, February 2nd, 2006

Terminei ontem o My Job Went to India. Mudei de opnião, você não deveria ler esse livro. Você tem quem ler o livro. :)

É como conversar com um programador mais experiente e sem papas na língua sobre seu futuro profissional.

Comecei hoje o Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. o livro não fala de fábricas de software como conhecemos, é um apradigma parecido com MDA mas menos genérico e menos xarope. Ainda assim não consegui formar uma opinião, esperem um artigo maior sobre o tema…

Book

My Job Went… wherever!

Tuesday, January 31st, 2006

A Amazon acaba de entregar meu My Job Went To India.

O livro é muito bom. Li quase 100 páginas desde ontem a noite até agora. Basicamente Chad Fowler fala sobre como não ser um programador commoditie, porque programadores commodities existem aos milhares na índia (ou no não citado Brasil). Apesar do alvo ser de engenheiros americanos (”ficamos gordos e lentos com o tempo“) os conselhos e histórias de Chad são fundamentais para qualquer um.

Além de explicar porque você deve se preocupar com a commoditização do trabalho, ele faz você se preocupar em evoluir como técnico, gerente e especialista em domínio. É um livro pequeno e não muito caro, não perca a chance de ler!

my Job Went to India