01 dezembro 2008

GMail bloqueado, saiba como burlar

Então sua empresa bloqueou o acesso ao GMail? Chato né? Aqueles zilhões de e-mails para ver, listas de discussão para acompanhar, a interface do GMail para brincar, os atalhos para treinar, e a empresa onde você trabalha simplesmente decidiu bloquear o acesso, por diversos motivos.

Existem várias formas para bloquear o acesso ao GMail. A mais simples, é o acesso pelo endereço mail.google.com. Este é o endereço oficial, e único meio de acessar a interface completa do GMail. Se o administrador de rede da empresa for esperto, ele também bloqueou o acesso via HTTPS. Ponto para ele!

Alguns administradores até sabem da existência de um gadget oficial do GMail para o iGoogle. Este gadget fornece uma interface simplória, que permite a leitura dos e-mails. Porém, existe outra versão deste gadget muito mais bacana, que permite inclusive visualizar conversas completas, escrever, encaminhar e responder e-mails, arquivar e marcar como lidos/não-lidos, e paginar Todos os E-mails (All Mails). Esta versão só está disponível para quem usa o iGoogle em Inglês no Sandbox. Para acessar esta versão, primeiro acesse esta página e mude o idioma e a localidade para Inglês / Estados Unindos. Salve. Depois, acesse esta página e preencha o formulário. Se o gadget do GMail não estiver já na sua tela, adicione ele por aqui. Pronto! Agora é só colocar o gadget em versão "full screen", clicando na ícone de maximizar e você terá uma versão bem mais completa e funcional do GMail, pelo iGoogle.

Mas... você subestimou seu administrador de redes. Ele é muito mais esperto do que imaginávamos. Ele viu que você acessou uma URL que possui no endereço a palavra "gmail". Não entendeu? O gadget é carregado num iframe e a URL é http://www.google.com/ig/gmailmax?hl=en&mid=101. Reparou na palavra "gmailmax" ? Seu administrador não é otário!! :P

Agora, uma coisa bacana é que nenhum administrador de redes bloqueará o acesso à página do Google, certo? Claro que não. Como que as pessoas trabalhariam?! Então ele permite que você acesse o endereço www.google.com. Somente URLs que possuem a palavra "gmail", ele vai bloquear. HHmmm... Você sabia que o protocolo HTTPS encripta toooooda a URL (path, parâmetros e o escambal...) ?! Opa!! Uma brecha... Duvido que seu administrador saiba disso. Então que tal acessar o iGoogle via HTTPS? Tenta lá, depois volta aqui.

...

Maravilha, não?!!!? Acesso ao GMail! E inclusive, sem que o administrador de redes saiba. Pois todo o tráfego (e também a URL www.google.com/ig/gmailmax) é encriptado entre o seu browser e o Google. Nem com reza braba ele tem como descobrir que você acessa o GMail, a não ser monitorando seu teclado/desktop, ou em pé atrás de você.

Ah, mas o iGoogle tem um bug que ainda não resolveram... O envio de e-mails não funciona via HTTPS. Uma pena não poder enviar e-mails para seus amigos, não é mesmo? Hhhmm... nem tanto. Lembra que seu administrador permite que você acesse o endereço https://www.google.com? Então!! O céu (via https) é o limite! Já experimentou criar um Notebook e compartilhar com um amigo seu para fazer um Google Talk arcaico (sim, chat!)? Ou então escrever um e-mail para alguém se aproveitando da função "Enviar por e-mail" do Google Reader?

Viu só? Seu administrador de redes (e a política da sua empresa) possuem um sério problema para resolver: bloquear TODO O ACESSO ao Google? Acho difícil... ;-)

Aproveitem, enquanto tudo isso funciona... Comentários? Agradecimentos? De nada... =)

[]'s
Bruno

25 novembro 2008

Enfim explicaram as conchas d'O Demolidor


Você também faz parte daqueles que assistiram ao filme d'O Demolidor, com o Sylvester Stallone e o Wesley Snipes? Repetidas vezes na Sessão da Tarde?


E mesmo depois de ter assistido googol vezes, não entendeu como funcionavam as conchas? Aí está. ;-)

Eu ainda prefiro o bom e velho papel higiênico...

[]'s

21 novembro 2008

Aranhas Drogadas



Uma boa forma para mostrar a alguém os efeitos das drogas, é através deste vídeo baseado nesta pesquisa científica.

Um ótimo final de semana,
Bruno

16 novembro 2008

Trabalhando da cafeteria: Dilema do Laptop

Trabalhar remoto é ótimo. Podemos escolher qualquer que seja o local. Em casa, na praia, no shopping, na cafeteria. Nesta última, para nós profissionais de TI, é o lugar ideal: combina um espaço agradável, onde estamos rodeados por pessoas mas sem necessariamente ter de interagir com elas, Internet WiFi e muito, mas muito café, e de fácil acesso!

Entretanto, com novas tecnologias sempre aparecem novos problemas. E neste caso não é diferente. O problema é O que fazer com o laptop quando se precisa ir ao banheiro?

Solução 1: deixe na mesa
Claro, ótima idéia! Por que não jogar também o cartão de crédito na mesa ou marcar na madeira da mesa a senha da sua conta bancária para facilitar a vida de qualquer um que passe por perto em arruinar a minha vida.

Solução 2: Peça à pessoa mais próxima para tomar conta
Não que eu pense que a pessoa ao lado vá roubar meu laptop - ele já tem um, e parece ser uma pessoa tranquila. É que eu só não acredito que ele vá fazer alguma coisa se um maluco entrar e roubar meu laptop. Na verdade, se ele for que nem eu, nem vai perceber. Se eu fosse uma pessoa que se preocupa com o que há ao redor, não traria meu laptop para um lugar público.

Solução 3: Levar ele comigo
O mais óbvio seria colocar ele embaixo do braço e ir para o banheiro. Porém, sinto que isto levantaria ... questões. "Por quê ele está levando o laptop para o banheiro? Ele sofreu algum tipo de overdose de poderes eróticos de algum tipo de heroína pornô? Por quê ninguém pára ele?" Não confio nas pessoas em dizer uma palavra se alguma van de ladrões de computadores pararem para pegar o meu laptop, mas tenho certeza que alguém vai me dar um tranco no joelho para evitar de eu levá-lo para o banheiro.

Solução 4: Levar tudo comigo
Bem, isto nem faz muito sentido para mim, mas aqui está o que eu geralmente faço: coloco meu laptop e meu iPod dentro da mochila e levo toda a minha vida para dentro do banheiro. Não sei porque eu sinto que isto é mais socialmente aceitável. O que eu quero que os outros pensem? Que vou me maquiar? Uma variedade de produtos de higiene? Talvez eu esteja querendo enganá-los em pensar que vou apenas fazer uma parada antes de ir embora. Se for isso, então funciona, porque geralmente quando eu volto não encontro meu copo de café e meu lugar já está ocupado.

O que você sugere? Comente!

Post original

[]'s
Bruno

Busca de Produtos na Americanas.com


Aposto que você leitor já fez pelo menos huma compra online. Capaz até de terem sido mais de 5 compras já. Alguma vez você tentou usar o sistema de Busca da Americanas.com? Eu tento toda vez que vou comprar algo lá. E olha que eu faço compras com eles pelo menos a cada bimestre. Mas o incrível é que, após 3 anos ... nada mudou.

O sistema de Busca da Americanas.com simplesmente não funciona. E ainda diz ser Powered by Google. Agora aqui vem a pergunta: incompetência da Americanas, do Google ou a Americanas está simplesmente mentindo sobre a ferramenta de busca utilizada em seu site? Difícil dizer.

Veja este exemplo: procure pelo DVD do filme "O Amor Não Tira Férias". Os resultados são ... são ... não são. Não mostra nunca!, na primeira página de resultados, este filme. E a Americanas vende ele! Tente estes métodos:
  1. Na página principal, no cambo de busca, coloque o título do filme e procure. O site informa que há 15584 itens! E mesmo dizendo que está ordenado por relevância, o DVD não aparece na primeira página. Para piorar, só há livros nela.
  2. Ok, pode parecer injusto procurar por um produto do tipo DVD em todo o site. Vamos filtrar apenas por DVDs: marque a opção "DVDs & VHS". O resultado? Nada bom: 1526 itens, e ainda não aparece na primeira página (mesmo ela ordenada por relevância.)
  3. E se formos primeiro no Departamento de DVDs, e então procurarmos especificamente pelo título do DVD? FAIL! Não aparece no primeiro resultado. E para piorar: trouxe 73 itens em 4 páginas e o DVD ainda não consta em nenhuma delas!! Mas... como?! Eles vendem! ... Vai saber...
Conclusão: comprar na Americanas, só quando recebo e-mails promocionais. Quando preciso de alguma coisa específica, por mais que eu tente comparar o preço com Submarino, Saraiva, Siciliano ou qualquer outra loja, a Americanas nunca entra na lista, pois não encontro o produto, e não tenho paciência para navegar entre mais de 15 mil itens, para após a última página não encontrar o que eu procurava; logo, não tenho como comparar preço/promoção/condição de pagamento.

-1 para a Americanas.com

A propósito, Americanas e Submarino são do mesmo grupo, B2W. Por que não eliminam de uma vez a loja que não funciona? O site da Americanas, além de lento e péssimo índice de busca de produtos, fica destruído no Firefox/Linux.

[]'s
Bruno

13 novembro 2008

Resumo da ApacheCon US 2008 - Parte 2

A conferência da Apache é uma mistura de tecnologias, com certeza. E de longe, deve ser comparada com o JavaOne ou o JustJava. A idéia é conversar, discutir, apresentar e melhorar tecnologias, seja qual for a plataforma (até a Microsoft esteve presente.) Apresentaram-se palestrantes experientes no servidor Web e em PHP. Outros em tecnologias que até são escritas em Java, mas não diretamente para um desenvolvimento em Java, como o projeto Hadoop. Rolou até um Hacking Contest em cima deste produto.

Porém, não somente para discutir tecnologia serve a ApacheCon, mas ... principalmente, para o tão famoso networking. Esta conferência não é grande - não mais que 300 participantes - pois a intenção é aproximar desenvolvedores, arquitetos, especialistas e profissionais de negócio (CIOs, CTOs, VPs, etc). Eu admito que esperava um ambiente como o do JavaOne (ainda não fui, mas fotos não mentem: é graaaande), e ao chegar e ver um espaço menor, sem frescura ou grandes preparativos, fiquei preocupado - "é aqui mesmo?". Depois do BarCamp, do Hackathon e do primeiro dia de sessões, entendi o motivo. A ApacheCon é sobre pessoas. Muitos foram para a ApacheCon para rever amigos - outros para conhecer novos amigos. Conheci um cara que me confessou: "Só conheço outras cidades e diferentes países graças à ApacheCon!"

Como já falei, free beer as in free software, todos os dias. No hall principal, onde rolava o almoço, keynotes e etc, não haviam cadeiras dispostas em fileiras, para todos sentarem quietos e ouvirem alguém falando no microfone. Alguns nem microfone utilizaram. Entretanto, mesas redondas com aproximadamente 8 cadeiras preenchiam o hall. Uma forma de induzir à reunião de profissionais de diferentes empresas, lugares e países. Excelente idéia!

Enfim, o segundo dia de sessões abertas - quarto dia de conferência - foi repleto de contatos com outros profissionais e festas. No final do dia rolou um pseudo carnaval pelas ruas de New Orleans organizado pela galera do OFBiz. Até um vídeo gravaram. Você reconhece o cara na foto, com a bandeira do Brasil nas costas? Clica na imagem para ampliar. :-)

Ah, o resumo. Vamos lá.

Quinta-feira, 06/11

More Apache Maven Best Practices
O Maven deveria ser padrão JCP - mas isso é a minha opinião. Esta ferramenta é uma mão na roda na hora de manter o processo de build dos projetos. Brett Porter começou sua sessão com uma recapitulação sobre as boas práticas mencionadas por ele mesmo, durante a ApacheCon 2007. O básico de todo ambiente com uso excessivo de Apache Maven nos projetos: manter um repositório local, o pom.xml simples, livre de amarrações a ambientes específicos (sistemas operacionais), gerar versões constantemente e principalmente, manter o build de uma versão reproduzível. Somado a estas dicas, Brett sugere o uso de plugins como o dependency:tree , dependency:analyze; padrões e boas práticas para testes integrados; geração dos sites e desenvolvimento de plugins. Veja a página desta sessão e lá você encontra o PDF com os slides e mais detalhes. :-) Excelente palestra!

(In)secure Ajax and Web 2.0 Web Sites
Sessão diferente, non-Java. Aqui Christian Wenz apresentou uma série de técnicas de cross-site scripting, session-hijacking, SQL injection, XPath injection, problemas com Ajax e porque CAPTCHA é uma grande besteira para proteger sites: deixa usuários irritados e crackers alegres - alegres? Eles se divertem fazendo programas para outras pessoas responderem, ilicitamente, o que consta nas imagems! :-) A sacada do CAPTCHA foi sensacional. Esta foi a sessão mais divertida da conferência, sem dúvida.

Don't know Jack about Object Relational Mapping?
Mais uma sessão divertida, principalmente pela personalidade de Craig Russell. O conheci durante os encontros no hall, enquanto corrigia bugs do Wicket. A sessão não continha nenhuma novidade para a maioria dos presentes, mas foi engraçado uma palestra sobre ORM, onde o palestrante afirmava: "You don't know Jack about Object Relational Mapping. So why are you considering using it? Keeping up with the Joneses?". Craig faz parte do projeto OpenJPA e a sua intenção foi passar um entendimento inicial, sobre os motivos para se usar uma tecnologia ORM.

Guidelines and Best practices-System architecture of web applications
Na última sessão do dia, que assisti, Ravi Saraswathiamma falou sobre arquiteturas operacionais, destinadas ao pessoal de administração de servidores e aplicações Web. Técnicas de como lidar com múltiplos servidores de bancos de dados, Servlet Containers e servidores Apache HTTPD. Também nos explicou algumas técnicas para critérios de seleção de software. Para completar, Ravi passou algumas idéias para planejamento de escalonamento futuro. Como estimar crescimento de hardware.

Depois desta sessão, parti para tomar uma cerveja com a minha anfitriã do CouchSurfing e após, fui para a festa da galera do OFBiz no bar Howling Wolf. Final de noite com boa música, amigos por perto e muitas cervejas. A caminhada para casa pela Bourbon Street foi só um complemento.

Parte 3 deve vir até Domingo! :-)

[]'s

11 novembro 2008

Resumo da ApacheCon US 2008 - Parte 1

ApacheCon US 2008
Antes tarde do que nunca. Fiquei na pendência de resumir 3 dias da conferência, mas por causa de tanto agito durante estes dias, deixei para trás. Mas, aqui está! Cheguei de viagem e com uma carga enorme de informação para compartilhar com vocês. Ah, e antes de mais nada, obrigado Apache! Não fosse por vocês (e as empresas que financiam a fundação) eu não estaria lá.

Começo esta primeira parte com, é claro, a:

Quarta-feira, 05/11

Bela manhã em New Orleans, com temperatura na faixa de 22C e sol brilhando no horizonte. O café da manhã na conferência foi o típico Coffee & Milk da Starbucks e vários tipos de cookies (e assim se repetiu durante os dias seguintes.)

David Recordon, durante o Keynote de abertura, falou sobre como o Open Source está revolucionando a nossa forma de pensar, codificar e lucrar com software. Nos tempos atuais, disse ele, não é mais uma questão de código-aberto, mas sim de padrões abertos, especificações e interoperabilidade aberta entre diversas tecnologias. Ele também falou da Open Web Foundation, organização sem fins lucrativos - como a Apache - com o objetivo de ajudar na definição de padrões Web.

Painel: The Business of Open Source
Logo após me dirigi à sala onde rolou um painel de discussão sobre Open Source com pessoas por trás das empresas que prestam serviço, e lucram, sobre Open Source. Uma conversa interessante para saber o que o setor privado anda pensando. Conclusão: dá para ganhar dinheiro com Open Source!! (se você ainda não acreditava, comece a acreditar...) Mike Bates, CEO da Hotwax Media; Phil Robb, R&D Manager da HP; Mark Brewer, vice presidente da SpringSource e Debbie Moynihan da FUSE afirmaram isto, sem medo.

Adoption-led: A rather obvious of talking about Open Source
Continuei na mesma sala para assistir à palestra de Simon Phipps, Chief Open Source Officer da Sun Microsystems, veio falar sobre modelo de negócio Open Source, o chamado "Subscription Model", onde se contrata suporte enquanto o produto (software) é gratuito. Se você possui uma empresa e quer ganhar dinheiro com Open Source, vale a pena pesquisar sobre este modelo. Se você dirige uma empresa e tem medo de adotar Open Source, fique sabendo que sempre há uma empresa por trás de um produto Open Source oferecendo Suporte por contrato. Nesta palestra, ao sair, encontro ninguém menos do que meu amigo Bruno Souza e a sua capa-Brasil. Definitivamente, não esperava encontrá-lo na ApacheCon! Foi bom revê-lo chará! :-)

Hora do almoço, patrocinado pelo Google. Sanduiches estilo Subway e bebidas grátis não deixaram a desejar.

Top 10 scalability mistakes
Aqui, momento de decepção. Quem, como eu, foi à palestra para obter informação comum a projetos de grande porte, preferencialmente em Java, encontrou uma sessão de dicas e exemplos de configurações para configurar um site em... PHP. A falta destas 3 letras na descrição da palestra irritou muita gente, que lotou a sala, mas ficou até o final para pelo menos absorver o que foi passado e poder aplicar, de alguma forma, a seus projetos.

Experiences with Real World OFBiz Projects
Queria muito aprender sobre o Apache Open for Business nesta conferência, mas o symposium rolava ao mesmo tempo que as outras palestras que me interessavam também. Nesta, esperei obter um pouco de informação do uso do OFBiz afora em grandes projetos, mas o que encontrei foram estatísticas de tempo de desenvolvimento, cronogramas e coisas do gênero. Seria útil para um gerente de projeto, talvez. Outras palestras rolaram, inclusive técnicas, mas acabei não participando. Fica para a próxima OFBiz!!

Break extendido. Preferi ficar no Hall após o break normal, pois nenhuma palestra me interessou. Fiquei na mesa com o Martijn Dashorst, committer do Apache Wicket e o Jeremy Thomerson, contribuidor do projeto como eu. Conversamos sobre o projeto, corrigimos alguns bugs e sem dúvida nos divertimos com assuntos non-geeks. Novas e ótimas amizades fiz aqui. Jeremy e eu decidimos agendar um BoF (Birds of a Feather) no final do dia, para conversar sobre o framework com outros desenvolvedores, tentar obter informação sobre uso em projetos, se há alguma coisa que poderia ser melhorada, etc.

Wicket in Action
A última do dia, não poderia deixar de ir, é claro. Martijn falou sobre o Apache Wicket. Nada que eu já não soubesse, mas fui prestigiá-lo. Numa ApacheCon, existe gente de todo o ramo: Web Development, SOA, Infra-structure, Administration. Mas para uma palestra de Wicket, realmente foi incrível ver a sala lotada. Foi uma das sessões mais movimentadas deste dia. No final da palestra, o Martijn anunciou o BoF agendado anteriormente por mim e pelo Jeremy e algumas pessoas se interessaram em comparecer, perguntando o horário e a sala onde iria rolar.

Free Beer as in Free Software
Quem conhece a expressão inversa, entenderá! Um dos patrocinadores ofereceu durante o break antes dos BoFs, cerveja para todos. Devo dizer que fiquei contente? :-)

BoF Apache Maven
Participei, junto com Martijn e Jeremy, do BoF sobre "Build Tools & Artifact Repositories", mas que acabou sendo de fato um BoF sobre o Apache Maven. Abri meu pom.xml e comecei a fazer perguntas e pedidos de funcionalidades aos committers. Finalmente pude reclamar do perrengue que é importar trocentos artefatos do mesmo grupo. Pedido anotado!

BoF Apache Wicket
A maioria deixou a sala, e ficaram mais ou menos 6 pessoas, além de Martijn, Jeremy e eu, para discutir sobre o framework. Nenhum dos presentes apresentou uma reclamação. Muito pelo contrário, todos elogiaram e começaram a falar dos seus projetos e em como estão obtendo sucesso na rápida implementação! Foi muito bom ouvir isso deles. Também havia um Gerente participando, pois na sua empresa ele deve decidir em breve qual tecnologia utilizar para o seu sistema de Healthcare. No final, perguntamos se ele já havia se decidido mas ele hesitou em apenas responder que pelo o que ouviu, não será difícil a escolha, depois de comparar com outros frameworks. Nice!

Após a conferência, nada de importante. Tomei meu rumo pela Bourbon St para a casa da minha amiga, mas parando é claro entre um bar e outro para curtir um som e tomar mais cerveja... ;-)

Em breve, a segunda parte!

Ah, se você leu tudo até aqui, parabéns! Pois agora você sabe que quiser os slides das palestras, é só acessar esta página e clicar na sessão que lhe interessar. Muitos palestrantes já submeteram os seus slides para a Apache anexar ao site.

[]'s

06 novembro 2008

Saiu no Estadão: Modems 3G em alta


Na edição desta Quarta-fera, 06 de Novembro de 2008 há um artigo sobre Modems 3G, escrito pela Juliana Rocha. Ela me pediu uma ajuda para saber um pouco mais como anda a Internet 3G, e saber um pouco sobre Modems e o acesso via celular, já que eu havia postado aqui no blog algo sobre este assunto.

Se você não comprou o Estadão desta Quarta-feira, tudo bem. Graças ao Estadão Digital, é possível conferir o jornal pela Web. A página do artigo é esta aqui.

[]'s

RESTful Web Services with Wicket


Here at ApacheCon, with the help of Jeremy Thomerson I could finally finish an idea I had months ago. How to easily provide simple RESTful Web Services with Wicket?

Basically, I wanted to output an Object as an XML with XStream. And the result is this simple class that you can extend and just have to provide a model with an object inside. Whatever is inside the model, gets outputted. :-)

So take a look at the class and use it as you wish.

package org.wicketstuff.wicketws;

import java.io.PrintWriter;

import org.apache.wicket.Component;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.html.WebPage;

import com.thoughtworks.xstream.XStream;

/**
* RESTful WebSevice page
*/
public abstract class WebServicePage extends WebPage {

private static final long serialVersionUID = 1L;

public WebServicePage() {
setStatelessHint(true);
}

protected final void onRender(MarkupStream markupStream) {
PrintWriter pw = new PrintWriter(getResponse().getOutputStream());
pw.write(getXML().toString());
pw.close();
}

protected XStream createXStream() {
XStream xstream = new XStream();
xstream.setMode(XStream.ID_REFERENCES);
return xstream;
}

private CharSequence getXML() {
XStream xstream = createXStream();
return xstream.toXML(getDefaultModelObject());
}

@Override
public final String getMarkupType() {
return "xml";
}

@Override
public final boolean hasAssociatedMarkup() {
return false;
}

@Override
public final Component add(IBehavior... behaviors) {
throw new UnsupportedOperationException(
"WebServicePage does not support IBehaviours");
}

}

And here's a quick example of a WebService:

package org.wicketstuff.wicketws;

import org.apache.wicket.PageParameters;
import org.apache.wicket.model.Model;

public class UserInfo extends WebServicePage {

public UserInfo(PageParameters pg) {
Integer id = pg.getAsInteger("id");
if (id == null) {
id = 1;
}

User user = ((WicketApplication) getApplication()).getUser(id);
setDefaultModel(new Model(user));
}

}

Oh, and don't forget to mount your WebService to get the default URL Strategy that is REST-like in Wicket.

@Override
protected void init() {
mountBookmarkablePage("userInfo", UserInfo.class);
}

Now all you have to do is access http://localhost:8080/myapp/userInfo/id/1

Done!! :D

05 novembro 2008

Terceiro Dia @ ApacheCon

Como falei no post anterior, hoje começam as palestras da Apache Conference, aqui em New Orleans. Mas, aos que estão distantes e não puderam comparecer, mas querem muito! assistir a estas palestras, fica aqui a dica de que elas serão transmitidas ao vivo pela Internet.

Os KeyNotes e a sessão Apache 101 são gratuitas, enquanto as outras sessões são pagas. Mas aproveite pelo menos os keynotes. Os assuntos são interessantes:

Keynotes include (all available for free)


Para maiores informações, veja esta página. E no final do dia, atualizo este post com o resumo do que aconteceu por lá.

[]'s!

Segundo Dia @ ApacheCon

Mais um dia na ApacheCon US 2008, em New Orleans. Nesta Terça-feira, foi a vez de participar do BarCamp. Hoje também foi um dia especial, onde pude finalmente conversar com diversos committers de projetos como Apache Wicket, Apache Maven, Apachhe Tuscany, Apache OpenJPA e Jetty. Sem esquecer que esta Terça, tivemos por aqui as eleições americanas para Preseidente (e senado) e a esta hora já é sabido que Barack Obama venceu as eleições com uma grande margem! :-)

Na ApacheCon, o dia começou com inscrições para o BarCamp. A idéia é mostrar o que se sabe e discutir a respeito. Participei apenas da sessão sobre o git - controle de versão criado por Linus Torvalds para gerenciar o código-fonte do kernel do Linux. Depois da breve palestra, pude entender as muitas vantagens e a maior simplicidade se comparado com o Subversion. Principalmente o suporte de se trabalhar offline. Poder criar branches sem ter que estar online para se comunicar com o servidor, é uma das grandes diferenças. Realmente vale a pena uma olhada.

Ainda no BarCamp, graças ao adesivo da bandeira brasileira no meu laptop, pude chamar a atenção do Luciano Resende, committer do projeto Apache Tuscany. Eu já havia me programado para assistir a palestra dele, então não foi uma grande surpresa vê-lo pr ali, mas sim a discussão que tivemos sobre as diferenças entre o Tuscany (SCA) e o ServiceMix (JBI). O BarCamp acabou e subi para o Hackathon.

No Hackathon me encontrei com o Martijn Dashorst, committer do Apache Wicket. Na mesa também conheci Jeremy e Jesse, alem da D. e da Wendy, ambas committers do Apache Maven. Após a breve introdução, partimos para o almoço. O Luciano se juntou a nós. Lá, eu pedi a comida típica de New Orleans: feijão vermelho com bacon, arroz, linguiça e uma fatia de pão com manteiga. Muito bom! :-) Vale a pena experimentar. Aliás o Jesse, committer do Jetty, pediu o mesmo que eu. Não pude conter o sarcasmo e fiz uma piada. Logo após já estávamos conversando sobre o Jetty, o suporte a Comet connections, e à uma dúvida que veio à minha mente ele respondeu prontamente: toda a mágica por trás destas conexões é implementada com Javascript e só encontraram problemas até agora, em algumas versões específicas do Safari. Muito bem! :-D Vou largar o Tomcat...

A tarde começou e eu decidi ficar no Hackathon ao invés de voltar para o BarCamp. O motivo? Free beer!! :-D Assim como aconteceu ontem, hoje recebemos garrafas de cervejas grátis na sala. "Free software as in free beer" essa é a idéia! :-) Mas é claro que não apenas foi bom ter cerveja grátis, como também ter tido a oportunidade de conversar mais com outras pessoas. Troquei uma idéia com o Luciano sobre o Tuscany vs ServiceMix e com o Craig Russell sobre o OpenJPA. Além de discutir algumas coisas sobre o Apache Wicket com o Jeremy e o Martijn.

Após o Hackathon, nos reunimos no hall do hotel e nos dirigmos para um restaurante. Galera reunida e discutindo sobre diversas coisas. Mas principalmente, discutimos sobre assutos Non-Geek! :-) Sim... na TV estava passando as previsões sobre as eleições americanas. Não demorou muito para começarmos a comparar os sistemas de votação entre Alemanha, Holanda, Brasil e Estados Unidos. :-)

Após o jantar, tive uma ótima caminhada até a casa do meu guest do CouchSurfing. "Let's paint the White House black!" - é o que as pessoas gritavam na rua. "Vamos pintar a Casa Branca de preto." diziam os eleitores contentes com o resultado das eleições, referindo-se à cor da pele de Obama. Só pude concluir que a eleição estava decidida: Obama ganhou!! E isto me deixou completamente feliz. O discurso de Obama na TV foi realmente tocante. Mas... voltando ao mundo real...

Amanha começam as sessões abertas por aqui na ApacheCon, as apresentações, etc. Realmente, a Apache sabe fazer uma conferência. :-) Não esqueça de conferir meu blog amanha, sobre informações a respeito do terceiro dia!! :-D

[]'s

04 novembro 2008

Primeiro Dia @ ApacheCon

Enfim, em New Orleans. Estado de Louisiana. Cidade do Blues, Jazz e Rock'n Roll. Após uma viagem cansativa pela TAM até Miami, porém muito bem servida (o frango estava ótimo!), cheguei no aeroporto Louis Armstrong International. Muito menor é claro, comparado com o de Miami.

Do aeroporto direto para a ApacheCon, no Hotel Sheraton. O ônibus E2 me deixou a mais ou menos meia milha do hotel. Caminhei até o destino aproveitando o passeio e conhecendo um pouco da Canal Street. Já dentro do hotel, fui até a mesa de registro para garantir minha participação no evento. A responsável pela Apache Travel Assistance me procurou para me dar a ótima notícia de que eu receberia US$200,00 para ajudar no custo com transporte e comida. "How cool is that?!"

No Hackathon do evento, conheci o grupo da Infra-estrutura da Apache. Conversas sobre capacidade de processamento e storage atravessavam as mesas como bits entre os cérebros bizarros dos committers. Algumas horas após o almoço começaram a servir o breakfest. Os cookies de chocolates estavam ótimos... Mas o que realmente marcou, foi a FREE BEER oferecida por um bar. Sim, cerveja a vontade para os participantes!! Isso que é começar com o pé direito uma conferência!! :-D

E para fechar a noite, um passeio com os CouchSurfers e meu Hoster, no Street Car de New Orleans. Amanhã tem mais!!!

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 !!

15 setembro 2008

Slides JustJava, Parte 1: Apache Wicket

Ei, você que está lendo este post, não pôde ir no JustJava este ano? Teve que trabalhar, ou então estava longe demais de São Paulo? Tudo bem.... Tuuuuudo bem. Aqui estão os slides da palestra que apresentei, juntamente com meu amigo Cláudio, sobre o Apache Wicket.

Não esperava que a sala fosse lotar. Obrigado a presença de todos vocês que compareceram. E ano que vem terá mais :-)

Ah, aos que receberam o convite para comparecer no evento, onde vocês estavam afinal? O livro sobrou... :-)

Apache Wicket @ JustJava 2008
View SlideShare presentation or Upload your own. (tags: 2008 justjava)


[]'s!

08 setembro 2008

JustJava 2008: convites para o evento, plus brinde!

Aos interessados em participar do maior e melhor evento de Java do Brasil, tenho em mãos 2 convites em mãos para dar aos 2 primeiros comentários neste post.

Para apimentar a brincadeira (e fazer com que realmente vocês compareçam no evento... ) o primeiro dos dois que receberem o convite e comparecer em pelo menos uma das minhas palestras, ganhará o livro Segurança contra Hackers J2EE e Java.

E então?! Vai deixar passar essa oportunidade?!
Venha para o JustJava 2008!

[]'s!

04 setembro 2008

TIM Web lento no Linux? Culpe ... o Linux!


Se você antes de mais nada quer configurar o seu TIM Web no Linux, leia este artigo. Leu? Então segue o post...

Nunca imaginei que fosse dizer isso, mas o maior culpado para a baixa velocidade do TIM Web no Linux, desta vez não é o interesse financeiro da empresa, ou a sacanagem com os usuários. Tão pouco uma limitação do Modem MSA501HS USB da ONDA. É puro e simplesmente... o Linux.

Mas espera! O culpado é, para ser mais preciso, o Kernel 2.6.24! :-)
A correção já foi feita e na versão 2.6.26, já está OK.

Agora se você não aguenta esperar o Ubuntu 8.10 ou qualquer que seja a sua distribuição, nem tão pouco quer recompilar toooooodo o Kernel, segue abaixo 3 passos (resumidos) para arrumar o Driver USB Serial do Kernel, para suportar maiores taxas de transferências:
  1. Instale o código-fonte do Kernel:
    $ sudo apt-get source linux-source
  2. Aplique o patch informado aqui:
    http://fixunix.com/kernel/397985-patch-option-add-id-onda-msa501hs-hsdpa-modem.html
  3. Recompile o módulo, com as instruções aqui:
    http://ubuntuforums.org/showthread.php?t=279628
  4. Depois de recompilar, execute algo como:
    $ sudo make modules_install SUBDIR=drivers/usb/serial
A TIM não dá suporte ao Linux, e o fabricante do modem não fornece um driver... Não tem problema! Viva o Open Source! :P

Já é 1 da manhã. Não repare no baixo nível de detalhe nos passos...
Bem... a graça de usar o Linux é fuçar... então fuça aê!

Dúvidas? Comente!

[]'s

01 setembro 2008

O que mostrarei no JustJava 2008


Alguns amigos me perguntaram o que apresentarei no Just Java 2008, e depois de responder umas 3 vezes, aqui vai uma breve descrição das duas palestras que darei.

  1. Simplificando SOA com Apache CXF e ServiceMix
    Nesta que realizar-se-á na Quinta-feira (11) às 19h00, falarei sobre como o uso do ServiceMix juntamente com o Apache CXF pode simplificar a construção de uma arquitetura SOA.

    No início falarei um pouco sobre SOA, ESB e JBI. Este último não é tão conhecido. Refere-se à JSR 208, sobre Java Business Integration, e onde o ServiceMix se encaixa nisso.

    Depois, falarei mais sobre o ServiceMix e seus componentes. E então avanço para os componentes do CXF que se integram ao ServiceMix.

    Esta palestra tem o intuito de mostrar a simplicidade que é ter um WebService como ponto de entrada para o Enterprise Service Bus, e como integrar isto com outros serviços do ESB.

    Tudo bem que é a última do dia, mas... nada de ir embora cedo!! :-)
  2. Produtividade (e diversão) na Web com Apache Wicket
    Já nesta palestra, que terei a honra de compartilhar com o Cláudio Miranda, falarei sobre o framework Apache Wicket, os benefícios de se utilizar uma solução Component-based, e as características deste, que é hoje um dos frameworks mais bem vistos pelos desenvolvedores.

    A arquitetura por trás do framework, a idéia de componentização e as facilidades prontas contidas nele serão mostradas logo no início para clarear o entendimento de todos. Depois o Cláudio mostrará o lado bacana do framework, que são os componentes Ajax prontos para usar e se possível, uma demonstração.

    Esta palestra ocorrerá na Sexta-feira, às 13h00. Voltem rápido do almoço!!
Espero que vocês compareçam!!

26 agosto 2008

JustJava 2008: Wicket, ServiceMix e muito mais!


E lá vamos nós!! JustJava 2008!

Pela primeira vez, estarei no evento, e de cara com duas palestras. Se você quer conhecer o Apache Wicket de perto, esta será uma oportunidade incrível. Eu e meu grande amigo Cláudio, apresentaremos a vocês o framework, com uma palestra bacana e, se der tempo, uma demonstração.

Além disso, apresentarei sozinho (medo) outra palestra, sobre SOA, mais especificamente, Apache ServiceMix e Apache CXF. Será uma introdução ao ServiceMix e como utilizar WebServices nele. Esta, é mais técnica. :-)

Então, segue a programação (das minhas palestras):

Simplificando SOA com Apache CXF e ServiceMix
Quando: 11/09 Quinta-feira, às 19h00

Produtividade (e diversão) na Web com Apache Wicket
Quando: 12/09 Sexta-feira, às 13h00

Conto com a presença de vocês!
Mais informações sobre o JustJava 2008, clique aqui!

[]'s

18 agosto 2008

Como criar um projeto Wicket


O Fábio comentou no meu post uma dúvida sobre como criar um projeto Wicket no Eclipse e me senti na obrigação de compartilhar aqui com vocês, a mesma instrução que passei na palestra do RioJUG.

O Apache Wicket possui um archetype de QuickStart para o Maven, muito útil para iniciar um projeto. Este post não é um tutorial do Apache Maven, mas seguindo estes passos, você possuirá um projeto funcional em questão de segundos (dependendo da velocidade da sua Internet).

Acessando o site Apache Wicket - QuickStart, você verá um formulário para configurar o projeto. Preencha com algumas informações óbvias, como o pacote e o nome do projeto, em minúsculo, e selecione qual versão do Wicket você quer utilizar. Na caixa abaixo, aparecerá o comando para ser executado no seu terminal/console.

Isto irá criar uma estrutura padronizada de diretórios para um projeto Web do Maven. Após o término, execute o seguinte comando para verificar se o projeto está OK.

$ mvn jetty:run

Isto irá executar o Jetty (Servlet Container) Plugin e colocará no ar o projeto criado, no endereço http://localhost:8080/.

Agora, para ter o projeto configurado corretamente no Eclipse, basta também utilizar outro plugin para o Maven, chamado Eclipse Plugin. Execute o seguinte comando na pasta do projeto:

$ mvn eclipse:eclipse -DdownloadSources=true

Você deve configurar o Workspace do Eclipse para ter uma Classpath Variable apontando para o repositório do Maven. Também é possível acrescentar uma propriedade na hora de executar este plugin, para configurar o projeto como um Dynamic Web Project, do WTP. Para maiores informações, veja a documentação do Eclipse Plugin.

É isso. Eclipse e Apache Maven, é tudo o que você precisa para criar um projeto.

[]'s!

07 agosto 2008

Compare tamanhos de TVs


Está com aquela vontade nos dedos de clicar no mouse e comprar uma TV de última geração pela Internet, mas não sabe dizer se o tamanho da TV é o ideal para a sua estante?

Seus problemas acabaram. :-) Compare com a sua TV atual e veja as proporções.

O site Display Wars traz uma ótima ferramenta para comparar os diversos tamanhos e formatos de telas disponíveis no mercado.

Eu já sabia que uma LCD de 32" é maior que a minha TV antiga, atual, de 21". Mas não imaginava que a diferença fosse tanta. Também pude ver que uma de 42" é grande demais para colocar na sala.

E que você faça ótimas compras online!

Abraço!

31 julho 2008

Desafio HackerTeen: Solução


Aqui vai uma dica para a HackerTeen: se for para fazer um desafio que dá uma bolsa, façam algo que realmente dá uma bolsa! Afinal, o desafio de vocês parece mais um vestibular. Passa, quem escrever a melhor redação...

Eita, você não entendeu nada? Leia o artigo no IDG e depois volte aqui.

Ok, agora, se você quer se juntar a mim, e a outros 3 curiosos e receber o segundo desafio antes do anúncio público, envie um e-mail para: joker@hackerteen.com e diga: "a imagem com a mensagem secreta é a t194.gif"

Fácil, não? O que tem de diferente? O tamanho da imagem, em relação às outras. E o que tem dentro dela? Edite a imagem (não, não é para abrir o Photoshop!!), de preferência em modo Hexadecimal (mas não é obrigatório, já que o bloco de comentários do formato GIF, não codifica o texto) e então você verá a seguinte inscrição:

0000310: 4861 2068 6120 6861 2068 6120 6861 2068 Ha ha ha ha ha h
0000320: 612e 2048 756d 2e2e 2e20 566f 6365 206d a. Hum... Voce m
0000330: 6520 6163 686f 752e 2053 6520 766f 6365 e achou. Se voce
0000340: 2063 6865 676f 7520 6174 6520 6171 7569 chegou ate aqui
0000350: 2c20 766f 6365 2065 2070 6572 7370 6963 , voce e perspic
0000360: 617a 2c20 6d61 7320 7365 7520 7465 6d70 az, mas seu temp
0000370: 6f20 6573 7461 2063 7572 746f 2e20 2041 o esta curto. A
0000380: 676f 7261 2070 6172 6120 7361 6265 7220 gora para saber
0000390: 7175 616c 206f 2064 6573 6166 696f 2061 qual o desafio a
00003a0: 2063 6f6d 706c 6574 6172 206d 6520 6d61 completar me ma
00003b0: 6e64 6520 756d 2065 6d61 696c 3a20 4a6f nde um email: Jo
00003c0: 6b65 7240 6861 636b 6572 7465 656e 2e63 ker@hackerteen.c
00003d0: 6f6d 2000 21f9 0401 0a00 ff00 2c00 0000 om .!.......,...

Esse desafio foi realmente difícil... Puff!! Depois de enviar o e-mail, recebi isso:

Muito bem! você chegou até aqui mas precisa avançar!

Agora olhe esse vídeo (http://www.youtube.com/watch?v=ab2Ut87-ESM) você não acha que o ator que me interpretou, o Heath Ledger, mereceria um Oscar? Hum... eu vou me dar um Oscar... Ha ha ha ha ha ha... hum... bem... Não é isso que você quer ouvir, não é mesmo? Vamos lá: O desafio a ser feito para você ganhar uma vaga no HackerTeen consiste em:

1 - Criar uma Dissertação (http://pt.wikipedia.org/wiki/Disserta%C3%A7%C3%A3o) desenvolvendo um dos seguintes temas (você deve escolher apenas um):
Opção 1 - Existe um momento no filme, que Batman é obrigado a rastrear todos os cidadãos para descobrir onde o Coringa está localizado. Algo semelhante está prestes a acontecer na Internet com a aprovação da lei do Senador Azeredo. Rastrear o IP de cada cidadão deve ser Lei ou deve ser um caso de investigação da polícia quando de um crime? Disserte sobre o assunto: http://www.petitiononline.com/veto2008/petition.html

Opção 2 - Se Batman fosse um Hacker, e o Coringa um Cracker, disserte sobre como, onde (os sites), e os motivos de um duelo entre os dois na Internet, mostrando os problemas nos dias de hoje.
2 - texto deve ter no máximo 3900 caracteres em algum editor de texto ( aproximadamente 1 folha)
3 - Cadastrar-se no formulário (http://www.hackerteen.com/pt-br/fale-conosco) do HackerTeen com seus dados
4 - Você deve enviar o arquivo da dissertação para o batman@hackerteen.com . Também, anexado no email, deve enviar a imagem da Carta do Baralho que contém a mensagem 'Ha ha...'
5 - No corpo do email, você deve explicar qual foi o procedimento que seguiu para descobrir a Carta do Baralho que continha a mensagem
6 - Também no corpo do email, você deve enviar seu nome completo, telefone e cidade onde mora.

Sério, desafio mesmo é escrever uma redação, preencher um formulário, ter entre 17 e 19 anos e ter a sorte de ser escolhido. Porque, fazer tudo isso é muito chato!!

[]'s

Palestra sobre Wicket no RioJUG


Aos curiosos, interessados e àqueles (loucos) que preferem assistir a uma palestra do que ir para um Happy Hour de botequim. Apresentarei uma prévia da minha (possível) palestra submetida ao JustJava 2008, no RioJUG (que fica... no Rio? :-D).

A Palestra:

    Apache Wicket é uma maneira natural de desenvolver sistemas para a plataforma web com produtividade.

    Desenvolver aplicações cujos modelos HTML não tenham tags nem scripts proprietários; usar pura orientação a objeto nos componentes e inclusive nas páginas; suporte nativo e extensivo a validações e conversões. Integração com Spring, Ajax de fábrica, testabilidade, segurança, suporte a POJO em sua concepção, sem arquivos de configuração, suporte ao botão de voltar e duplo-clique, reusabilidade através de componentização.

    Será mostrado por que Apache Wicket é produtivo, simples, rápido e divertido; principais funcionalidades e uma demonstração com código fonte.

Segue informações:

Dia: 06/agosto/2008 (quarta-feira)
Horário: 19:00 horas
Duração: 2 horas
Local: Auditório do SENAC CIT - Rua Santa Luzia, 735 - 7o. andar, Centro
Dica de Acesso: Estação Cinelândia do Metrô pela saída Santa Luzia, atrás do Consulado Americano.


Conto com a presença de todos! (mesmo que você more longe, não deixe de vir.)

[]'s!

29 julho 2008

Wicket in Action: Revisão do Livro

Hoje recebi um e-mail um tanto quanto inusitado. O diretor de Marketing da editora Manning me disse que Eelco e Martijn pediram para que eu, juntamente com outros entusiastas do framework Apache Wicket, recebessem uma cópia eletrônica do livro Wicket in Action para avaliar, revisar e opinar a respeito. Em troca? A chance de ter a minha opinião na contra-capa do livro.

Também terei a responsabilidade de num prazo não muito longo, publicar aqui para vocês, uma revisão detalhada sobre o livro, tanto em inglês como em português.

Fiquem de olho!

"Apache Wicket - porque Java para Web pode ser simples."

[]'s !

16 julho 2008

Nós não somos Recursos!

A lista dos artigos mais interessantes que li este ano, com certeza inclui este, escrito pelo Mark Turansky no DZone. Segue abaixo a tradução do texto:

Nós não somos "Recursos!"

Recursos. É um termo de desumanização e também errado para praticamente qualquer profissão em que eu possa pensar.

Planejamento de projetos requer estimativas e prazos. Não tenho problema com isso exceto quando trata pessoas como peças substituíveis (nota: COGS). Num processo manufaturado, trabalhadores habilidosos podem ser substituíveis. [...] O processo pode ser perfeitamente trabalhado num número exato de passos para construir alguma coisa. Leia o Modo Toyota para ter uma melhor noção de como as indústrias globais alcançam isto.

Estes não são "Recursos!"

Mas há diversas profissões que não podem e não devem atingir este tipo de processo, onde trocar um recurso por outro não é sensível.

O Chicago Bulls contratou um "recurso de arremessar bem" ou eles tiveram o Michael Jordan?
A Apple estava bem quando tinha apenas um recurso "CEO" ou só melhoraram depois que Steve Jobs voltou ao cargo?
Você prefere ter um médico com 1 ano de experiência ainda na faculdade, para fazer a sua cirurgia no cérebro, ou prefere o especialista na área?
Você quer um recurso "Ator" ou teria o Brad Pitt maior poder de chamar atenção para seu filme?
Quando foi a última vez que você procurou uma construtora qualquer para reformar a sua casa, ao invés de chamar a melhor do mercado?
A Seleção Brasileira de Futebol ganhou 5 copas porque tinha o mínimo de jogadores necessários para formar um time, ou porque já teve na sua escalação Pelé, Falcão, Ronaldo, Ronaldinho e Romário?

Trabalhadores que precisam pensar e de criatividade, não são diferentes. Engenheiros de Software são simultaneamente criativos e lógicos, e há uma diferença em ordem de magnitude entre os bons programadores e os péssimos programadores (leia o Peopleware se você não acredita nisso). Graças a esta diferença, estimativas devem ser modificadas baseadas nestes "recursos", o que significa que não somos "cogs" substituíveis.

É o time, estúpido!

Você pode me escalar para ser o homem da terceira base do Yankees (deste modo, salvando dinheiro na balança Custo-Tempo-Qualidade), mas certamente tenho a qualidade de um produto que sofrerá devido ao fato de que joguei poucas ligas de baseball quando era criança. Similarmente, você pode me escalar para seu filme, mas não tenho certeza se ajudarei a vender bilhetes. Também não seria a pessoa ideal para dirigir a Apple, e com certeza você não iria me querer como seu cirurgião cerebral.

Talento importa.

Organizações vencedoras constróem times vencedores, eles não agendam recursos e eles não desfazem times vencedores. Elas pagam grandes valores para grandes profissionais sabendo totalmente que é talento que faz um time vencedor.

O livro Rapid Application Development de Steve McConnell, coloca no ranking o termo "Weak Personnel" (um fraco Recursos Humanos) como o segundo erro clássico que uma empresa pode cometer quando está construindo um software. [...]

Talento importa. Tratar desenvolvedores altamente qualificados como apenas "recursos", é humilhante, desumano, e ultimamente anti-produtivo para uma organização que precisa construir e manter times vencedores.

Artigos complementares
ICSE Peopleware Panel Session
Teamicide Revisited

Nota, por Bruno Borges:
Não basta o RH trocar uma palavra e achar que os profissionais se sentirão melhores. "Recurso", "colaborador" ou "funcionário" são sinônimos no contexto deste artigo.

[]'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