sexta-feira, 26 de fevereiro de 2010

Acessando o código fonte de um add-on do Firefox

Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2010/02/26/Acessando-o-codigo-fonte-de-um-add-on-do-Firefox.aspx


Sempre que a gente baixa um add-on do Firefox ele está em .xpi. Arquivos .xpi assim como arquivox .jar na verdade são arquivos .zip. Para acessar o fonte desse tipo de arquivo basta transformá-lo em .zip (trocando o nome) e depois descompactar.

Geralmente o código está dentro do diretório content.

Acessando sites temporariamente off-line

Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2010/02/26/Acessando-sites-temporariamente-off-line.aspx


Existe um site que armazena vários outros em cache. Existem duas maneiras de usar:

  1. Acessando a página http://www.coralcdn.org e digitando o endereço na caixa de texto e clicando em Go.
  2. Entrando em algum site usando .nyud.net no final da url. Por exemplo: http://www.ni.com.nyud.net ou http://www.google.com.nyud.net.

sexta-feira, 19 de fevereiro de 2010

JavaScript: Compilando scripts do Greasemonkey em .xpi (add-on do Firefox)

Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2010/02/19/JavaScript-Compilando-scripts-do-Greasemonkey-em-xpi-(add-on-do-Firefox).aspx


Achei bem legal essa página: http://blog.arpitnext.com/greasemonkey-compiler-xpi/

É bem simples de usar. Basta preencher o formulário e colocar o script no mesmo padrão do greasemonkey que ele vai complicar para .xpi. É bom pra criar scripts que rodem nas páginas independentes do greasemonkey.

Quando for fazer uma atualização, use o mesmo GUID, assim o próximo add-on compilado irá sobrescrever o que já existe no navegador. Bem legal!

JavaScript: attachEvent e o seu problema com this no IE

Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2010/02/19/JavaScript-attachEvent-e-o-seu-problema-com-this-no-IE.aspx


Nesse post estou anexando um exemplo de dica no link, o qual usa o attachEvent e um this dentro da função chamada por ele. É mais um exemplo do livro Simply JavaScript. Para baixar, clique aqui.

O attachEvent, usado pelo Internet Explorer é diferente do addEventListener, usado pelos navegadores que seguem os padrões W3C no tratamento de eventos. O livro Simply JavaScript não explica muito bem como ele faz para tratar esse assunto, ele simplesmente mostra um script e diz que é complicado para explicar. Aqui também não vou explicar, mas sim mostrar o caminho que eu fiz para entender esse assunto.

1. Para entender como funciona o this tanto no attachEvento quanto no addEventListener, eu li o conteúdo desse link: http://www.quirksmode.org/js/this.html

2. Esse outro link reforça o entendimento do this no JavaScript: http://trephine.org/t/index.php?title=Understanding_JavaScript's_this_keyword

3. Após entender o que está escrito nos links acima, pra finalizar é preciso entender o método call, assim será possível entender o código do livro. Essa página explica bem isso: http://trephine.org/t/index.php?title=JavaScript_call_and_apply


É isso aí, esse foram os passos que usei pra entender essa questão. De começo não parecia simples e foi difícil encontrar esses links, mas agora parece algo bem comum e fácil de usar.

sábado, 6 de fevereiro de 2010

IIS e WAMP na mesma máquina

Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2010/02/06/IIS-e-WAMP-na-mesma-maquina.aspx


Ambos usam a porta 80 como default. Para usar os dois ao mesmo tempo, uma idéia é mudar a porta default do WAMP. Para isso:

  1. Abra o arquivo C:\wamp\bin\apache\apache-version\conf\httpd.Conf
  2. Mude onde estiver Listen 80 para uma outra porta (por exemplo, Listen 82)
  3. Em c:\wamp, nos arquivos wampmanager.ini e wammanager.Tpl, mude todas as instâncias de http://localhost para http://localhost:82 (a mesma porta usada no passo 2)