28 outubro 2008

Entrevista sobre Wicket e fotos da anterior

Pela terceira vez, concedo uma entrevista; desta vez ao site Wicket in Action (em inglês), sobre o framework Apache Wicket, que suporto fielmente. Nesta entrevista é possível conhecer um pouco melhor sobre o meu trabalho, minha profissão e meus interesses. Quer ver um trecho?

Can you please give a short introduction to yourself?

Olá! I'm a brazilian developer living in Rio de Janeiro. Single, no kids, dogs or plants but a few bugs. When I'm not coding, I'm surfing or drinking beer with my friends. I also host foreigners through couch
surfing
. I'm also a committer on Wicket Stuff and a contributor to Apache Wicket.

A entrevista completa pode ser lida clicando aqui! Ah, se inglês for um probleminha, uma dica é usar o Google Translator. A página já traduzida para o português é essa.

A primeira...
A primeira que concedi, onde falo um pouco sobre viajar e fotografias, foi ao blog de uma grande amiga jornalista, Ana Paula. Eu postei sobre issso a algum tempo atrás. Se houver a curiosidade,é só ir até esta página. :-D

Entrevista sobre CouchSurfing.com na TV
A segunda entrevista, e a mais emocionante, foi sobre o site CouchSurfing, ao qual participo ativamente hospedando e conhecendo pessoas do mundo todo. Esta entrevista foi na TV ao vivo, pelo programa Atitude.com da TV Brasil. Veja algumas fotos no meu álbum (clica nessa imagem ao lado!) :-)

Atitude.com

[]'s!
Bruno

22 outubro 2008

Atualize-se para o Wicket 1.3.5


Atualize-se! Versão 1.3.5 do Apache Wicket já está disponível nos repositórios Maven, assim como em formato eager. :-)

Essa versão traz, obviamente, bugs corrigidos (90+) e novas funcionalidades e melhorias (30+). A série 1.3 do Wicket é para aqueles que ainda não migraram para o uso com Generics; este somente na série 1.4. Veja aqui a nota desta nova versão, com a lista dos problemas/melhorias corrigidos/implementadas.

Então, se você quer atualizar seu projeto para a nova versão, basta editar seu pom.xml e colocar:
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket</artifactId>
<version>1.3.5</version>
</dependency>


Se você não usa Maven, não tem problema. Clique aqui para ter a versão eager.

Ainda na versão 1.2?!? Migra logo!!

[]'s!!
Bruno

19 outubro 2008

Quais palestras da ApacheCon você iria?

Há duas semanas tento definir minha lista de palestras e a cada vez que olho a grade, mudo de idéia. É claro que há algumas que com certeza não faltarei, como a do Apache Wicket e a do ServiceMix. Mas há muitas outras interessantes, como as relacionadas ao OFBiz (Open for Business), algumas sobre o Lucene e outra sobre o Geronimo. Além destas palestras técnicas, há também conversas sobre Open Source e como corporações podem abraçar a idéia.

Então, para que eu não apareça por lá sem saber exatamente o que assistir, peço a ajuda de vocês respondendo à seguinte pergunta: Se você estivesse na ApacheCon US 08, quais palestras você não perderia por nada?

E é claro que, em troca, postarei aqui (e isso é uma promessa!) um resumo de cada dia do evento. Também sortearei os brindes que trouxer de lá, entre todos que comentarem este e os outros posts sobre o evento. Então apresse-se: veja a grade do evento e comente!

[]'s!
Bruno

14 outubro 2008

CouchSurfing e eu na TV ao vivo


Aos que me conhecem bem, sabem que participo do site CouchSurfing.com, ou então pelo menos que às vezes eu hospedo estrangeiros no meu apartamento. Aos que não sabem, que tal dar uma lida no artigo que escrevi sobre isso?

Pois foi graças a este artigo, recebi o convite para participar do programa Atitude.com da TV Brasil. O tema será especificamente sobre o CouchSurfing e a experiência de hospedar ou ser hospedado por estranhos, de diferentes regiões do mundo. Tenho certeza que será uma ótima oportunidade para o projeto, e para os interessados em viajar e conhecer diferentes culturas. Se você ainda não conhece o projeto, assista ao programa! Vai que você esteja planejando aquele mochilão pela Europa e já não sabe mais de onde cortar os gastos para não se preocupar com a grana. Que tal cortar com a hospedagem e de quebra conhecer pessoas de verdade, suas culturas e rotinas diárias? É uma oportunidade única. :-)

O programa é ao vivo e irá ao ar nesta Quarta-feira, dia 15 de Outubro às 18h00. Se você não sabe o canal da TV Brasil na sua região, acesse esta página e saiba como sintonizar. Aos que possuem NET TV a Cabo, assistam pelo Canal 4. No Rio de Janeiro, pela TV aberta é possível assistir pelo Canal 2.

Então, não deixe de assistir ao programa pois é a primeira vez que teremos um bate-papo ao vivo sobre o CouchSurfing na televisão brasileira! :-)

Um abraço a todos!!
Bruno

ApacheCon US 2008 ai vou eu!

Dentro de 3 semanas acontecerá em New Orleans, Illinois Louisiana (sim, na terra do Tio Sam), a Apache Conference. Para quem não conhece, esta é a conferência oficial da Apache Software Foundation com a participação de membros oficiais, committers, developers do mundo todo, empresas patrocinadoras e contribuidores (como eu). Com a participação destes profissionais e outras organizações da comunidade Open Source, a ApacheCon oferece uma oportunidade única para realmente se interar com a cultura e a comunidade que desenvolve os produtos líderes do mercado.

Muita coisa interessante rolará por lá, como o OFBiz Symposium, o Barcamp e o Hackathon, além de muitas palestras sobre tecnologias da Apache (incluindo o ServiceMix, Lucene e o ... Wicket!!). Com certeza será um evento inesquecível. Ainda mais para quem estiver lá. Como eu! :-)

Graças ao projeto TAC (Travel Assistance Committee) da ASF, recebi com muita alegria a oferta de passe livre para a conferência, além das passagens aéreas para New Orleans. :-D Então se você quiser um dia ir para a próxima ApacheCon e a grana está curta, tente entrar em contato com o TAC para alguma ajuda financeira. Mas lembre-se: não basta pedir, tem que participar da comunidade (antes de pedir!)

Mas se você, depois de ver a grade do evento, tiver interesse em assistir às palestras, acompanhe diretamente pelo seu computador com o Live Streaming do evento. Mas é preciso se cadastrar.

E agora, preciso estudar um pouco sobre o Quarteirão Francês para me preparar para os pubs e diversos bares da região. Ah, é... isso porque a conferência acontecerá no Sheraton Hotel, no início do quarteirão! :-)

Agora só preciso encontrar um couch. Pois, cidade do Blues e do Jazz, aí vou eu!! Bourbon Street e o melhor do rock com (espero eu) as melhores cervejas. :-)

[]'s

10 outubro 2008

Convertendo valores financeiros no Wicket

É muito comum a necessidade de se converter valores no desenvolvimento Web. E quando precisamos disso, é importante que o framework aplicado no projeto possua uma facilidade enorme para que a solução desta necessidade não se torne em um pesadelo.

No Apache Wicket, muitas conversões são já automáticas, graças aos conversores-padrão. Mas, às vezes é necessário customizar alguns destes conversores para algo mais específico. Como a conversão de valores monetários, por exemplo. E a boa notícia é que, apesar de existirem 3 formas de se obter o mesmo resultado, todas elas são fáceis de serem implementadas e cada uma possui a sua utilidade.

A primeira e mais objetiva é prover um conversor customizado, reaproveitando-se de um já existente, a um componente específico:

        PropertyModel pm = new PropertyModel(pojo,
"valor");

add(new Label("valor1", pm) {
public IConverter getConverter(Class type) {
return (IConverter) new BigDecimalConverter() {
public NumberFormat getNumberFormat(Locale locale) {
return NumberFormat.getCurrencyInstance(locale);
}
};
}
});


A segunda, é criar um conversor customizado para poder reutilizá-lo em outros componentes:

public class BigDecimalCurrencyConverter extends BigDecimalConverter {

public NumberFormat getNumberFormat(Locale locale) {
NumberFormat format = NumberFormat.getCurrencyInstance(locale);
return format;
}

}


        add(new Label("currency2", new Model(new BigDecimal("99"))) {
public IConverter getConverter(Class type) {
return (IConverter) new BigDecimalCurrencyConverter();
}
});


E a terceira opção, um pouco mais complexa, consiste em definir um tipo para valores monetários, , um conversor específico para este tipo e registrar este conversor na aplicação Wicket, para que sempre que este tipo passar por algum componente, será automaticamente convertido. Vamos ver como fica.

Como não se pretende aqui sobrescrever o conversor padrão para BigDecimal, cria-se o tipo Currency:

public class Currency extends BigDecimal {

public Currency(BigDecimal value) {
super(value.toString());
}

}


Isto serve para que, em lugares onde não se quer definir literalmente um valor monetário, mas apenas um BigDecimal, seja posssível utilizar-se do BigDecimalConverter, fornecido automaticamente pelo framework. Sem conflitos! :-) Agora é preciso definir o CurrencyConverter:

public class CurrencyConverter extends AbstractDecimalConverter {

private BigDecimalConverter converter = new BigDecimalConverter() {
public NumberFormat getNumberFormat(Locale locale) {
return CurrencyConverter.this.getNumberFormat(locale);
}
};

public NumberFormat getNumberFormat(Locale locale) {
return NumberFormat.getCurrencyInstance(locale);
}

protected Class getTargetType() {
return Currency.class;
}

public Currency convertToObject(String value, Locale locale) {
return new Currency(converter.convertToObject(value, locale));
}

}


Talvez você se perguntou "porque não herdar de BigDecimalConverter?". Simples: por causa de algumas definições de Generics, não é possível herdar de BigDecimalConverter, pois este já está atrelado ao tipo BigDecimal. Veja o fonte da classe. :-)

Agora, só basta registrar este conversor para o tipo Currency. Isto é feito lá na sua classe que herda de WebApplication. Sobrescreva o método newConverterLocator() desta forma:

    protected IConverterLocator newConverterLocator() {
ConverterLocator locator = new ConverterLocator();
locator.set(Currency.class, new CurrencyConverter());
return locator;
}


E pronto! Veja como fica o uso neste terceiro caso:

add(new Label("currency3", new Model(new Currency(new BigDecimal("99")))));


Agora, como utilizar isso com outros componentes além do Label, só fuçando!! Para mais informações sobre conversores, clica aqui.

Dúvidas? Sugestões? Elogios? Comentem! :-)

[]'s!

09 outubro 2008

Linuxinks da semana

Quinta-feira, dia de postar alguns links.
(Pelo menos é o que pretendo fazer com maior frequência também.)

Linuxinks
são links relacionados ao mundo Linux e hoje temos:
O lançamento do Ubuntu 8.10; um artigo sobre o gOS; dicas sobre o uso de pipes e outros artifícios úteis do *nix e também um pouco de diversão com utilitários inúteis. :-)


gOS 3

Google Operational System
Artigo: Is it better than Ubuntu?

Está aí uma promessa boa de um sistema operacional que ocupará pouco espaço em disco, mas comerá toda a sua banda de internet. O gOS, que não é associado ao Google, é uma versão modificada do Ubuntu/Debian que integra-se 100% aos serviços do gigante de busca. Uma barra com ícones na base (avant-window-navigator) aponta para ferramentas como GMail e Calendar. Outros softwares como OpenOffice vem instalados e há integração com o Google Docs também. Remember the Milk? Eu sim. E ele também vem ligado ao desktop. Enfim, uma série de utilidades para os viciados em ter seus documentos online, acessíveis a qualquer momento, de qualquer lugar (desde que haja acesso à Internet)

Dicas de Shell para Unix/Linux
Artigo: Speaking UNIX: !$#@*%

Nesse artigo da IBM, é possível obter ótimas dicas do uso daqueles caracteres bizarros que vemos em alguns scripts bash. Raramente lembro de como utilizá-los, exceto os básicos como Pipeline, Data Redirection e vi que este artigo é um excelente guia de referência para a escrita de scripts automatizados ou alguns comandos úteis para se ter no /usr/local/bin.

Explica o uso de saidas de programas, condições lógi
cas, operadores de substituição e operadores relacionados a arquivos. Realmente muito útil! :-)

Ubuntu 8.10
Artigo: Screenshot Tour: First Look at Ubuntu Inteprid 8.10 Beta

Tomei coragem, respirei fundo, contei até 10, esperei algumas horas de download e finalmente, instalei a versão 8.10 Beta. Resultado? Clico numa ícone e me conecto no TIM Web sem segredo! Também não precisei do driver da ATI (fglrx) para rodar o Compiz, e curti demais a novidade da Guest Account, ainda mais por muitas vezes emprestá-lo aos hóspedes do CouchSurfing que recebo em casa. Está show de bola! Quem não estiver com pressa, melhor esperar até a versão final. Caso contrário, a versão Beta está bem estável, caso essa seja a preocupação... :-)

Diversão no Linux
Artigo: Four Easy Fun Useful Things You Can Do With Linux

Neste artigo da LinuxPlanet, não há muita novidade, exceto por uma: figlet. Este pequeno programa desenha em ASCII qualquer texto passado para ele. Um exemplo:
É legal para gerar mensagens do dia (MOTD) ou customizar aquele prompt do Linux, no /etc/issue. :-) Essas dicas estão lá no artigo.

Por hoje é só. Boa noite! (ou bom dia...)

08 outubro 2008

Coisas de Geek, Prefácio


A algum tempo senti a necessidade de postar algo sobre nós, geeks. Somos mal compreendidos, muitas vezes vistos como nerds ou simplesmente "aqueles viciados em computador". Mas, não é bem assim, não é mesmo? Apenas gostamos de informação. O que há de errado nisso?

Tem gente que prefere ler Caras, Nova ou Cláudia. A seção de esportes do jornal ou o caderno de lazer com a programação de shows e baladas eletrônicas. Nós gostamos de Scientific American, Super Interessante, Galileu e National Geographic. Qual o problema com isso? :-D Bem, nós também somos humanos, também temos problemas e também ficamos tristes de vez enquando. Precisamos de passatempo, de leituras e distração para a cabeça. E que modo melhor do que distrair a mente, alimentando-a? :-D Tem gente que come para passar o tempo, a gente engole informação, só isso. Não é complicado, é? :-P

Por essa razão, pretendo com uma certa frequência (trema não é mais utilizado... atualize-se!) postar aqui informações que alimentem a sua mente, e a dos non-geeks também. Quem sabe o mundo não se torne um lugar melhor para se viver quando mais pessoas se informarem sobre coisas menos habituais ou rotineiras, mas mais interessantes?

Para celebrar esta categoria no meu blog, vai um video para tentar atrair mais non-geeks a admirarem melhor os geeks de hoje e de amanhã.



[]'s
Bruno

02 outubro 2008

Grupo de Discussão do Wicket, em Português


Aos desenvolvedores brasileiros e do idioma português, interessados no framework Apache Wicket, atenção! :D

Além dos canais oficiais para troca de conhecimentos:
Agora existe também o grupo de discussão Wicket em Português (wicket-ptbr). Me perguntaram porque eu não criei com o nome "Wicket Brasil". Bem, depois das mudanças na nossa Língua Portuguesa, onde o objetivo é unificar o idioma no mundo, não há mais razão para termos grupos em português específicos para o Brasil. :-) Maaaaas, brasileiro que é brasileiro, não se rende, então por isso é "wicket-ptbr" e não apenas wicket-pt!! :D

Convido a todos para participar do grupo.
Para se inscrever, acesse a página aqui.

[]'s !!
Contato

Email:bruno.borges(at)gmail.com

LinkedIn: www.linkedin.com/in/brunocborges
Twitter: www.twitter.com/brunoborges
Comprei e Não Vou
Rio de Janeiro, RJ Brasil
Oracle
São Paulo, SP Brasil