20 de abril de 2007

19 de abril de 2007

Puxão de orelha faz bem, JavaScript também. Apresento o Firebug!

Este post fala especificamente do Firebug, uma ferramenta para editar, depurar e monitorar as principais tecnologias usadas em páginas web (e.g. CSS, HTML, JavaScript, DOM).

Sempre tive bronca com as tecnologias usadas em páginas web (CSS, HTML, JS, ...). Primeiro, pela falta de conformidade das implementações com as especificações (sic. IE), odeio esses "if (IE) { do_it; } else { do_similar; }". Segundo, que o sucesso de uma tecnologia está diretamente ligada à qualidade dos seus editores, compiladores, depuradores, ..., e convenhamos que este nunca foi um ponto forte nestas tecnologias.

Mas, incentivado pelo puxão de orelha do Carlos, o sucesso do AJAX e os tantos frameworks que abstraem a falta de compatibilidade entre navegadores, e a dica de alguns colegas no FISL, resolvi investigar o tão comentado Firebug.


O que é Firebug ?

É uma ferramenta de desevolvimento integrada ao Firefox, que permite editar, depurar e monitorar conteúdo CSS, HTML, JavaScript e DOM utilizados nas páginas web, e tudo isso pode ser feito enquanto você navega pelas páginas.


Instalando.

O Firebug é instalado como um plugin do Firefox, click, click, click, depois de reiniciado o navegador e todas as tuas sessões recuperadas (isso é bala no Firefox), você está pronto para usar o Firebug.


Primeiros passos

A tecla F12 é a sua amiga, com ela você abre e fecha a aba do Firebug. Com isso você pode inspecionar, editar, depurar o conteúdo da página que você está navegando no momento.


Trabalhando com HTML

Nesta aba você pode visualizar o código HTML da página, pode navegar pela sua árvore de elementos e ao selecionar um elemento ele é destacado na página atual.
O contrário também pode ser feito, isto é, clicar em um elemento na página e automaticamente o Firebug seleciona este elemento na árvore.
Muito fácil achar elementos dentro da sua página!

O Firebug apresenta os atributos do elemento selecionado em uma janela lateral, ele permite você alterar estes atributos ou editar diretamente o código HTML. Em todo momento o recurso de auto-complete está disponível =D.
O melhor disso tudo é que as alterações têm efeito instantâneo na página, super importante na abordagem "tentativa-e-erro" para desenvolvimento de interfaces web!


Trabalhando com Layout

Finalmente você vai conseguir entender porque suas caixas não estão alinhadas corretamente!
Basta selecionar o elemento desejado e deixar o Firebug mostrar e medir todos os atributos envolvidos no layout deste elemento.
Tudo isso facilitado com o uso de réguas e linhas guias, ah, lembra do recurso de editar os atributos on-the-fly?
Use e abuse em conjunto com as teclas direcionais =D!






Monitoramento da Rede

Vitor, lembra quando a página do Priki demorava mais de 10 segundos para ser carregada? Mole mole com o Firebug.
Para cada arquivo carregado dentro de uma página, ele mostra uma barra com o início e fim do carregamento em relação aos outros arquivos, além do tempo necessário para esta tarefa.
As barras cinzas em claro indicam que o arquivo foi carregado do cache do navegador, não consumindo recursos da rede.
Fácil de achar os gargalos, além de permitir ajustes finos na ordem de carregamento dos arquivos. Recurso muito bom!

O Firebug permite visualizar o conteúdo do request-response de cada arquivo carregado, além disso, ele permite monitorar as requisições XML utilizadas em páginas AJAX.


Depurando JavaScript

O esquema de depuração do Firebug é outro grande diferencial, de dar inveja a muita IDE com mais anos de estrada.

Permite inserir breakpoint em qualquer linha do código JS, parando a execução quando o depurador passar por aquela linha, além disto, este breakpoint pode conter uma condição de parada.
Tec, tec, tec, tec... a depuração pode ser feita passo a passo, permitindo avaliar expressões, checar e alterar valor das variáveis no contexto.

Bom, se mesmo com este arsenal de depuração, você deseja continuar no bom e velho "printf", manda ver! O Firebug disponibiliza um console, onde você pode escrever no seu JS comandos de saída.

>>> console.debug("Passei aqui!");
>>> console.log("Usuário removido.");
>>> console.warning("Conexão não estabelecida.");
>>> console.error("Ihhh, fud***");

Bom, seguindo na linha redeshop, as ofertas não acabam por aí. Se você precisa achar gargalos no seu JS, o jeito é partir para um profiling. Mas não se preocupe, o danado do Firebug tem! Basta um click para iniciar o profile, outro clique para interromper e apresentar o relatório. Tenta fazer no Eclipse =(


Cara, quanta coisa ainda tem nesta ferramenta! Bom, dormir também é preciso...


Conclusões

Apresentei apenas algumas características da ferramenta Firebug, e todos elas de maneira bem superficial. Você pode concluir os benefícios que esta ferramenta pode te trazer ao desenvolver páginas web com CSS, HTML, JavaScript e DOM. Eu não mencionei a parte de desenvolvimento CSS, vou deixar para os designers, nem a aba para exploração de árvores DOM. Mas a filosofia é a mesma, edite on-the-fly.

Fiquei realmente impressionado com o poder do Firebug, ousaria em dizer que é uma IDE dentro do Firefox, e vou mais longe, deixa muita IDE aí no mercado no chinelo, se tratando de depuração, profile, logging. Certamente o puxão de orelha valeu a pena, e a minha bronca miou com tecnologias para desenvolvimento de páginas web.



FERRAMENTA ALTAMENTE RECOMENDÁVEL!



PS: Nem tudo é maravilha ainda, utilizando a versão 2.0.0.3 do Firefox algumas features do Firebug não funcionaram corretamente, mas de qualquer forma, não arranha nem um pouco o brilho da ferramenta.


Referências

Firebug
Firebug add-on
AJAX debugging with Firebug
Blog do Carlos
A Guide for JavaScript Debugging using Firebug for Firefox

16 de abril de 2007

FISL 2007 - Conclusões

Não vou me estender nas impressões sobre o FISL, já que a maioria delas vêm de encontro com as do Vitor.

Porém gostaria de acrescentar algumas sugestões para o próximo ano:
- Voltem para a PUC por favor, pelo menos os problemas estruturais vão acabar. Ao que tudo indica a comissão do FISL está lutando para isso.
- Fazer metade das salas iniciarem suas palestras em hora cheia (ex. 10:00) e a outra metade em hora quebrada (ex. 10:30). Com isso baixaria a quantidade de gente e túmulto nos corredores na saída das palestras, além de permitir eu sair antes de uma palestra que não gostei e conseguir pegar logo outra palestra.

Gostaria de parabenizar a comissão do grupo de usuários do FISL, que aumentou a nossa área, permitindo uma melhor circulação por entre os stands. Isso mostra que eles acatam sugestões de anos anteriores =D !!!

FISL 2007 - Balanço último dia

Segue o balanço do último dia (14/04), parece relatório para empresa isso aqui !!!

Evento:
- Galera voltou a comparecer em massa.

- Problemas estruturais não tiveram jeito, aumentou a quantidade de gente, logo link voltou a cair e algumas quedas de energia no restaurante. Um dos banheiros estragou, deixando os outros um caos, principalmente na saída das palestras. Ouvi um zum-zum da comissão, que no próximo ano é quase certo que volte a ser na PUC, tomara que os engravatados se acertem.

- Zorra organizada pela galera do Debian parou o FISL por uns cinco minutos, apitasso geral =D.



Palestras:
- Primeira do dia "Web 2.0 na prática com Java, Faces, EJB, JPA / Hibernate e AJAX", apesar do título pretencioso para ser apresentado em apenas 1 hora, o palestrante focou em Ajax. Na minha opinião mandou muito bem, deixando claro o que é o Ajax, os resultados gerados por este tipo de tecnologia, apresentou a facilidade que o Faces dá para utilizar Ajax. Enfim, gostei da palestra.

- Depois a palestra "Por que ser um Desenvolvedor *Franciscano*? Resposta ao Jô !", que tinha por objetivo dar uma reposta à entrevista polêmica no Jô Soares sobre software livre (SL), em que ele denominou este tipo de desenvolvedor de *Franciscano*. Estavam na mesa grandes desenvolvores de SL no país, onde alguns falaram nada, outros alguma coisa, e outros disseram tudo: "Se desenvolve SL por paixão, para se divertir, aumentar sua rede de amigos, aprender, evoluir, compartilhar conhecimento, transformar seu meio social". Apesar das boas conclusões, vou ser obrigado a puxar a orelha do pessoal. SL já tem a fama de parecer tudo uma bagunça, mas a gente sabe que não é. O pessoal não poderia ter deixado acontecer as gafes no início da palestra, como a desincronização áudio/vídeo na entrevista do Jô, e o "pau" em um dos palestrantes, perderam metade da platéia com isso. Enfim, quem permaneceu na sala ouviu o que precisava para saber o que motiva um desenvolvedor de SL, gostei !!!

- Depois uma que eu esperava bastante "Nos trilhos com Rails", que mostraria os principais recursos do Ruby on Rails e ao final faria uma comparação entre uma aplicação Java+Struts+Hibernate e outra RoR. Infelizmente a palestra teve seu horário antecipado e eu não vi. Alguém viu?

- A tarde um mega palestra que não estava no programa "Tudo sobre frameworks Java com Leandro Saad", onde o Leandro mostrou grande parte das funcionalidades do Guara, além de diversas dicas sobre outros frameworks. Sem dúvida a palestra mais produtiva do FISL.

14 de abril de 2007

FISL 2007 - Balanço segundo dia

Aqui vai minha opinião sobre o segundo dia (13/04) do FISL:

- A quantidade de gente circulando deve ter caído pela metade neste segundo dia, o que me surpreendeu, já que me parece mais natural o pessoal ser liberado do trampo numa sexta-feira. Com isso não consegui avaliar se a estrutura de suporte melhorou ou se foi a quantidade de gente a menos que impactou, já que não houveram quedas de luz e nem baixas no link.

- Menos gente circulando, menos gente se interessando sobre o trabalho do JavaFree, logo mais palestras puderam ser assistidas. Porém minha opinião continua, palestrar fracas e sem necessidade.

- A primeira palestra que assisti do dia foi "O Presente e o Futuro da Propriedade Intelectual: um debate internacional". Palestra nada técnica, mas que abordava uma tema super atual e ainda não resolvido.
Com este "boom" do software livre, de quem é o direito intelectual? Pense em um projeto open source e que o Joãozinho contribui para este projeto. Um belo dia o desgraçado processa os responsáveis pelo projeto por direitos intelectuais no código que ele contribuiu. E aí, de quem são os direitos?
Tudo indicava que eu teria estas respostas na palestra, afinal dois "fodões" em propriedade intelecual estariam falando sobre o assunto, porém, na minha humilde opinião, apenas os problemas foram relatados e propostas de solução que é bom, NADA !!!

- Mas não desisti da minha pergunta, parti logo em seguida para a palestra "Novos Modelos de Negócio com Propriedade Intelectual", fiquei exatos 10 minutos, tempo para me convencer que ali também não me dariam respostas.

- Indo para a alçada mais técnica, fui assistir a palestra "Developing With KDE4", que apresentou os novos recursos para o desenvolvimento de aplicações desktop no KDE. A palestra só carimbou a minha conclusão sobre o assunto, que C++ apesar da idade, ainda está engatinhando no desenvolvimento deste tipo de aplicação.

- Finalmente uma palestra envolvendo Java "Apache Struts 2 - Turbinando o Desenvolvimento Web", e como a maioria sabe meu conhecimento em frameworks é quase nulo, boa hora para conhecer um pouquinho mais sobre o assunto. Conclusão, eu já sabia Struts 2 =(.

- Por fim, uma palestra sobre um assunto que curto muito, que é fazer baixarias com banco de dados. A palestra "PostgreSQL Babilônico - O banco de dados de muitos idiomas" tentou mostrar as diversas formas e linguagens para estender o PostgreSQL, interessante o assunto. Porém o palestrante não ajudou, com sua aversão ao desenvolvimento orientado a objeto e com o seu discurso "Parem de fazer selects burros e lógica de negócio nos seus objetos, façam isso no banco", fui obrigado a tapar o ouvido o resto da palestra. Além do figura ter gastado mais tempo e atenção preparando o currículo dele do que a própria apresentação, pois "estender" com "x" é dose amigo.

- Outra atração do dia foi o "TUX", muito engraçado o cara, fazendo várias bobagens pelo fórum, zoando com todo mundo. Ele foi se meter a bobo lá no JavaFree e tomou umas porradas, ta filmado hehehe.


- Ahhh, o cafézinho com as gostosas servindo, para "estresse" geral, continuaram no segundo dia =D.

13 de abril de 2007

FISL 2007 - Balanço primeiro dia

O balanço no primeiro dia (12/04) do FISL, começando pelos aspectos negativos:

- Poucas chamadas para palestras me chamaram a atenção, logo foram poucas que eu fui assistir, e infelizmente todas elas foram decepcionantes. Ponto fraco as palestras deste primeiro dia.

- A estrutura de suporte do evento ainda não está 100%, link para a internet instável, muitas vezes mais lento que uma linha discadinha, alguns pontos caiu a luz. Estes pontos acho extremamente grave para o evento.


Agoras as coisas legais, que fazem o evento valer a pena:

- Poder trocar idéia com vários fodões da área, que provavelmente desenvolveram algum framework que você esteja usando. Existe fonte melhor que essa para obter informações?

- Poder detalhar o trabalho feito no JavaFree ao pessoal que o (des)conhece.

- Poder conhecer pessoalmente uma cambada de gente que freqüenta o portal do JavaFree.

- Confraternizar a galera é muito show, vários contatos, diversas discussões técnicas, compartilhamento de experiências, momento de bobeira, enfim, na minha opinião é este tipo de coisa que faz o sucesso do evento.

- Tomar cafézinho a vontade, não um cafézinho qualquer, e sim um capuccino ou chocolate. Para deixar a situação mais "estressante", tais quitutes são servidos por baitas gostosas.


E vcs? Alguma palestra decente?
O que mais vocês curtiram?

FISL 2007 - JavaFree marcando presença

Como todos devem saber está ocorrendo em Porto Alegre, de 12 a 14 de abril, o 8º Fórum Internacional de Software Livre (FISL 2007), um dos maiores fóruns sobre o assunto no mundo. Telinha de abertura do evento logo abaixo:


Mais um vez nós do JavaFree estamos marcando presença com um mega-stand (1/4 de pizza) para expor o trabalho realizado pela nossa galera. Ta aí uma fotinho do nosso cantinho:


Podem notar que a camiseta deste ano está muito legal, parabéns ao Dalton. Aliás o pessoal que quiser uma camiseta, elas estão sendo vendidas no stand. Ta aí alguns clientes do dia:


Galera que esta afim de conhecer mais o nosso trabalho, tirar algum tipo de dúvida, jogar conversa fora, falar das promoters gostosas do evento, tomar cafezinho, enfim, passa lá no stand para conversar com a gente. Da esquerda para a direita: Elias (Confraria do Java), Vitor e Eu


Além da galera na foto, marcou presença o Ping (homem mobilidade), Dalton (fundador) e o Vicente (escritor AspectJ), aliás, sou fã do cara e da Datasul também heheh !!!

Abraços,