terça-feira, 31 de março de 2009

Não seja tolo - 2009

No japão já passa da meia noite. E como em todo ano, no dia primeiro de abril milhares de notícias falsas inundarão a Internet.

Então fique esperto, as noticias desta quarta que forem verdadeiras terão algum aviso do tipo: NOTÍCIA VERDADEIRA

:)

terça-feira, 24 de março de 2009

Rapidinha: Video game Zeebo não!

Não passa de um celular com chipset Qualcomm em uma caixa de video game com saida pra TV e entrada pra controle. O processador é um ARM de 500Mhz e roda jogos em Brew.

"Tudo isso" mais caro que um Playstation 2.

domingo, 22 de março de 2009

A Apple e o iPhone caindo na real.

Com esse título você já deve estar esperando um posto detonando a Apple e seu telefoninho não é? Mas não é nada disso. Continue lendo amigo leitor que você vai entender!

Caindo na Real, é o título em português de um livro sobre desenvolvimento de software que li ano passado (a propósito, li o livro todo pelo celular). O original se chama Getting Real publicado pela empresa de software 37 Signals, que dentre muitas criações tem o famoso Ruby on Rails. Sua descrição no próprio livro é: "é uma pequena equipe que cria software simples e focado".

A 37 Signals usa a filosofia do Getting Real para o desenvolvimento ágil e a criação de softwares simples e uteis com melhoria continua. As melhorias são baseadas no feedback de usuários do mundo real, buscando o que é mais importante. Essa filosofia deu origem ao livro Getting Real que pode ser lido de graça completo e em português direto pelo site. Eu recomendo muito a leitura desse livro por qualquer pessoa, vale a pena.

Então essa semana, com o lançamento do iPhone OS 3.0 me veio a relação direta entre a Apple com o iPhone, e a filosofia empregada pela 37 Signals com o Getting Real. Não quero em hipótese alguma dizer que a Apple está seguindo os ensinamentos do livro (eu seria apedrejado por isso, mesmo que fosse verdade), mas quero listar apenas algumas semelhanças de comportamento. Vejam elas.

O capítulo 1 do livro é a apresentação e introdução da idéia toda, então o livro começa mesmo pelo capitulo 2, e o primeiro título desse capitulo é:
Construa Menos. Faça menos que sua competição
...
O senso comum diz que para vencer seus competidores, você precisa estar um passo a frente. Se eles possuem quatro funcionalidades, você precisa de cinco (ou 15, ou 25). Se eles gastam X, você precisa gastar XX. Se eles têm 20, você precisa 30.

E então da a idéia:
Faça menos que a concorrência para desbancá-los. Resolva os problemas simples, deixe os problemas cabeludos, difíceis e desesperadores para os outros.


Agora vamos pensar. Menos funcionalidades. Resolver problemas de maneira simples. Ninguém precisa de 2 segundos para responder qual o smartphone no mercado tem MENOS recursos, e qual é o mais fácil de usar. Basta lembrar em 2007, a Apple lançando um telefone celular sem MMS, recurso básico que qualquer telefone barato. Ou ainda lembrar que hoje, em pleno 2009, a Apple vende seu telefone considerado avançado mas não faz videos, o aparelho é 3G mas não faz video chamadas. A questão é que apesar de tantos "menos" ninguém se importou com isso e em quase 2 anos já vendeu 17 milhões de unidades. Exatamente como manda a filosofia do Getting Real.

Mais um exemplo, no capitulo 5 o título é:

Meio, Não Meia-Boca. Faça meio produto e não um produto meia-boca
...
Atenha-se ao que é verdadeiramente essencial. Boas idéias podem ser tiradas da gaveta. Pegue tudo que você acha que seu produto deve ser e corte pela metade. Remova funcionalidades até que você obtenha apenas o essencial. E então, repita o processo.


Alguém mais está vendo o iPhone aqui? A versão 3G do iPhone não manda MMS, mas o browser é maravilhoso. Não faz vídeos, mas maximiza as fotos espichando os dados. É isso, faz pouco, mas o que faz tem que ser bem feito.

E logo após vem a parte que eu mais gosto:

Comece com Não. Faça com que as funcionalidades dêem duro para ser implementadas
...
Cada novo pedido de funcionalidade que vem até nós encontra um não. Nós ouvimos mas não agimos. A resposta inicial é “agora não”. Se o pedido continua a aparecer, então sabemos que é hora de um olhar mais profundo. Somente então nós começamos a pensar na funcionalidade de fato.

E num capitulo mais a frente, o livro retorna a falar sobre os recursos pedido:

Então o que você faz com todos esses pedidos (de novos recursos)? Onde você os guarda? Como você os gerencia? Você não faz isso. Você apenas os lê e então os joga fora.

Sim, leia, jogue fora e esqueça-os. Pode soar como heresia mas os realmente importantes irão, com certeza, reaparecer. Esses são os únicos que você precisa se lembrar. Esses são os realmente esseciais. Não se preocupe em organizar e guardar cada pedido que aparecer. Deixe seus clientes serem sua memória. Se a funcionalidade for realmente necessária, eles te lembrarão até que você não consiga esquecer.



Quantas vezes você ouviu alguém berrando por um copiar e colar no iPhone, ou pelo MMS? Está tudo ai no iPhone OS 3.0. Mas foi preciso 2 anos de muito barulho. Durante as entrevistas de pessoas ligadas ao desenvolvimento do iPhone, cada pergunta sobre funcionalidades não implementadas recebe como resposta simplesmente um: "- Não temos nada sobre isso". Mas a Apple internamente deve estar contando os pedidos. É o desenvolvimento do produto baseado no feedback dos usuários no mundo real.

Claro que dá pra imaginar que muitos recursos não implementados fazem parte de uma política maior da Apple, como por exemplo a falta de um radio FM nos seus media players, mas boa parte dos recursos faltantes do iPhone devem vir no futuro.

Isso quer dizer que eu imagino que em algum tempo deve vir nativamente o recurso de fazer filmes, ou mesmo ter uma câmera melhor (aqui envolve custos). Do mesmo modo outros recursos não devem aparecer por uma questão de modus operandi da empresa, como a capacidade de executar programas em segundo plano (ou você acreditou na desculpa da bateria?)

É sem dúvida um modo interessante de trabalhar, apesar de eu achar que funcione melhor para o desenvolvimento web, que é o foco do livro da 37 Signals, a relação com o desenvolvimento do iPhone inevitável. E ainda me pensar que coisas boas seguirão vindo para o iPhone no futuro.

quarta-feira, 18 de março de 2009

Ocioso? Abertura do desenho O Pink e o Cérebro em diversas linguas.

Me lembro que eu adorava muito o desenho O Pink e o Cérebro. Pra mim era o melhor na minha idade infanto-juvenil :)

Segue a abertura em diversas línguas:

Português:


Ingles:



Alemão:


Russo:


Japonês:



Só um pouco que vou ali tentar conquistar o mundo e já volto.

Integrando JavaServer Faces, RichFaces e jQuery. Muito simples.

Passada as férias, gostaria de falar de algo que tenho trabalhado, e estou gostando bastante. Se trata do JavaServer Faces. Comecei a olhar ele com desconfiança, mas por se tratar da opção "padrão" do Java fui ver a fundo o que ele era capaz de fazer. Posso dizer que usar o JavaServer Faces, com o RichFaces, vendo as novas características que serão introduzidas na versão 2.0 (junto com o Servlets 3.0) é uma experiência que eu recomendo.

Algumas coisas me chamaram atenção. Como montar uma tabela a partir de uma lista de objetos. Depois, apos a tabela receber um click eu conseguir recuperar o objeto inteiro da linha selecionada. Sem me preocupar em passar parâmetros, receber ids, buscar objetos. É uma funcionalidade simples, mas para fazer funcionar também é simples, e isso me agrada muito.  As vezes no Java algumas coisas simples não são simples de fazer funcionar.

Outra coisa que gostei no JSF foi a possibilidade de expansão dele. Não fico preso ao que vem pronto. E tentando expandir as funcionalidades que estava tentando integrar o RichFaces com a biblioteca ajax jQuery. Confesso que passei algum trabalho, mas o trabalho foi ficando bom quando fui descobrindo que eu não precisava fazer nada.

O RichFaces já vem com o jQuery, isso facilita muito. Mas o que facilita mais ainda é que já existem tags para uso do JQuery dentro do arquivo do JSF. Achei pouca documentação então posto aqui um exemplo.

Eu queria usar o componente de calendário do jQuery. Mas eu queria também que fosse possível editar com o teclado a data. Mas além disso eu queria que a data tivesse formatação de data, e para isso usar o jQuery.

Para fazer essa mistura funcionar é realmente muito simples. Primeiro deve-se adicionar o JavaScript do jQuery:




Então é preciso criar a mascara de data com o jquery. Para isso existe a tag rich:jQuery. Ela faz as chamadas diretas as funções do jQuery sem usar Javascript.

query="mask('99/99/9999',{placeholder:' '})" />


Depois é só criar o campo da data, e atribuir a ele uma classe igual ao que descrita na propriedade seletor.



Resolvido. Temos um componente de data bonito e funcional. Com a capacidade de ter um calendário e ao mesmo tempo editar com o teclado formatando corretamente a data.

Esse é só um pequeno exemplo das possibilidades. O jQuery é um ótimo framework javascript e junto com o RichFaces fornecem ferramentas poderosas para o desenvolvimento web.