quinta-feira, setembro 09, 2010

How to recover of the crash after the udev package update

Last night I've updated the udev package on my Ubuntu 10.04 (32-bits) and after system restart my PC was unable to boot.

The error messages were the following:

udevadm settle is not permitted while udev is unconfigured
ALERT! /dev/disk/by-uuid/)a8cc71e....071cd does not exist. Dropping to a shell

Was it a plague of St. iGNUcius because I have written an article about Windows?



After some research on Google, I found out the solution:

  • Boot the system using the Ubuntu live CD. If Ubuntu automatically mount the hard disk partition, unmount it before proceeding. This can be done easily through Nautilus.

  • Open a command prompt.

  • Create a new folder in order to mount the HD:



    sudo mkdir /mnt/newroot
    
    
  • Mount the HD (sda1, in my case):



    sudo mount /dev/sda1 /mnt/newroot
    
    
  • Change the root directory:



    sudo chroot /mnt/newroot
    
    
  • Run the following command:



    update-initramfs -u -k all

  • Return to the old root and unmount the partition:



    exit
    sudo umount /mnt/newroot
    
    
  • Reboot.
After these steps, Ubuntu should work without problems.

Como se recuperar do crash após atualizar o pacote udev

Ontem de noite fiz a atualização do pacote udev do meu Ubuntu 10.04 (32 bits) e ao reiniciar a máquina conforme a solicitação do instalador, o sistema não bootava.

A mensagem de erro apresentada era:

udevadm settle is not permitted while udev is unconfigured
ALERT! /dev/disk/by-uuid/)a8cc71e....071cd does not exist. Dropping to a shell

Será que isso foi uma praga de  São iGNUcius devido eu ter escrito um artigo sobre o Windows?



Após pesquisar um pouco no Google, encontrei a solução:

  • Inicie o sistema usando o live CD do Ubuntu. Se o Ubuntu montar automaticamente a partição do disco rígido, desmonte-a antes de prosseguir. Isso pode ser feito facilmente por meio do Nautilus.

  • Abra um prompt de comando.

  • Crie uma pasta para montar o HD:


    sudo mkdir /mnt/newroot
    
    
  • Monte o HD (no meu caso, ele é o sda1):


    sudo mount /dev/sda1 /mnt/newroot
    
    
  • Altere o diretório root:


    sudo chroot /mnt/newroot
    
    
  • Execute o comando abaixo:


    update-initramfs -u -k all

  • Volte para o root anterior e desmonte a partição:


    exit
    sudo umount /mnt/newroot
    
    
  • Reinicie a máquina.
Após esses passos, o Ubuntu deve funcionar sem problemas.

quarta-feira, setembro 08, 2010

Running 32-bits .NET applications on Windows 7 64-bits.

I tried to run a 32-bits .NET application that belongs to the enterprise that I work for on Windows 7 64-bits but IIS 7 was unable to load a DLL or one of its dependencies.

The message error is was the following:

Parser Error Message: Could not load file or assembly 'Engine.Client' or one of its dependencies. An attempt was made to load a program with an incorrect format.

After some Googled, I found out that I should explicitly instruct IIS to run 32-bit applications.

Next you'll see all the steps needed to solve this problem.
  • Open the IIS Manager. You'll see two items: Application Pools and Sites. Select Application Pools. My site is configured to use DefaultAppPool. See picture 1.




  •  Right click on the pool that your application uses (DefaultAppPool, in my case) and select the option Set Application Pool Defaults. See picture 2.





  • A configuration window will pop up. Notice that the property Enable 32-Bit Applications is set to false. See picture 3.




  • Change the Enable 32-Bit Applications value from false to true and close the configuration window.Done! Problem solved. See picture 4.




    I hope this post will be useful. Any question, fill free to get in touch.

Executando aplicações .NET de 32 bits no Windows 7 de 64 bits

Eu fui executar um aplicativo .NET da empresa, desenvolvida para rodar em 32 bits, no Windows 7 64 bits e o ISS 7 não consegui carregar uma DLL ou uma de suas dependências.

A mensagem apresentada foi:

Parser Error Message: Could not load file or assembly 'Engine.Client' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Após algumas buscas no Google, descobri que a opção de executar aplicativos de 32 bits deveria ser habilitada explicitamente.

Abaixo seguem os passos a serem executados.
  • Abra o gerenciador do IIS. Tu verás dois items: Application Pools e Sites. Selecione Application Pools. No meu caso, o meu site estava configurado para usar o DefaultAppPool. Veja a figura 1.


  •  Clique com o botão direito sobre o pool que a tua aplicação estiver usando (DefaultAppPool no meu caso) e selecione a opção Set Application Pool Defaults. Veja a figura 2.



  • Abrirá uma janela de configuração. Note que a propriedade Enable 32-Bit Applications está com o valor false. Veja a figura 3.


  • Mude o valor do campo Enable 32-Bit Applications para true e feche a janela de configuração. Pronto! Problema resolvido. Veja figura 4.


    Espero que esse artigo seja útil. Qualquer dúvida entre em contato.

domingo, julho 18, 2010

Error installing ruby-debug

Last week I tried to install ruby-debug on my Ubuntu 9.10 and I got an error as you can see below:

andreyq@desenv-ubuntu-9:~$ sudo gem install ruby-debug
[sudo] password for andreyq:
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-debug:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1

Gem files will remain installed in /var/lib/gems/1.8/gems/linecache-0.43 for inspection.
Results logged to /var/lib/gems/1.8/gems/linecache-0.43/ext/gem_make.out
andreyq@desenv-ubuntu-9:~$

After some research I discovered that I needed to have
ruby1.8-dev
package installed in order to satisfy some dependencies.

I did it
sudo apt-get install ruby1.8-dev
and then I tried again to install ruby-debug on my system:

andreyq@desenv-ubuntu-9:~$ sudo gem install ruby-debug
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed linecache-0.43
Successfully installed ruby-debug-base-0.10.3
Successfully installed ruby-debug-0.10.3
3 gems installed
Installing ri documentation for linecache-0.43...
Installing ri documentation for ruby-debug-base-0.10.3...
Installing ri documentation for ruby-debug-0.10.3...
Installing RDoc documentation for linecache-0.43...
Installing RDoc documentation for ruby-debug-base-0.10.3...
Installing RDoc documentation for ruby-debug-0.10.3...
andreyq@desenv-ubuntu-9:~$

Great! It worked!

What is weird is that I thought that the
ruby1.8-dev
package would be required only for changes on ruby itself.

Erro na instalação do ruby-debug

Na semana passada eu tentei instalar o ruby-debug no meu Ubuntu 9.10 e obtive o erro mostrado abaixo:

andreyq@desenv-ubuntu-9:~$ sudo gem install ruby-debug
[sudo] password for andreyq:
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-debug:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1

Gem files will remain installed in /var/lib/gems/1.8/gems/linecache-0.43 for inspection.
Results logged to /var/lib/gems/1.8/gems/linecache-0.43/ext/gem_make.out
andreyq@desenv-ubuntu-9:~$

Depois de algumas pesquisas descobri que precisava ter o pacote
ruby1.8-dev
instalado para satisfazer algumas dependências.

Fiz a instalação do mesmo:

sudo apt-get install ruby1.8-dev

e tentei novamente instalar o ruby-debug:

andreyq@desenv-ubuntu-9:~$ sudo gem install ruby-debug
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed linecache-0.43
Successfully installed ruby-debug-base-0.10.3
Successfully installed ruby-debug-0.10.3
3 gems installed
Installing ri documentation for linecache-0.43...
Installing ri documentation for ruby-debug-base-0.10.3...
Installing ri documentation for ruby-debug-0.10.3...
Installing RDoc documentation for linecache-0.43...
Installing RDoc documentation for ruby-debug-base-0.10.3...
Installing RDoc documentation for ruby-debug-0.10.3...
andreyq@desenv-ubuntu-9:~$

Ótimo! Desta vez obtive sucesso.

O engraçado é que eu pensava que o pacote ruby1.8-dev só seria necessário se eu fosse alterar o próprio ruby.

quinta-feira, março 11, 2010

What happens when you erase appdb folder

I tried to run a j2me application that I'm developing at work and I got the following error:

Connecting to 127.0.0.1 on port 2800
Waiting for KVM...
Waiting for debugger on port 2419
Connection received.
Running with storage root C:\Documents and Settings\moliveira\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Running in the manufacturer security domain
Connected to KVM
Incorrect domain name, switching to 'null'
java.lang.NullPointerException
    at java.util.Hashtable.get(+6)
    at com.sun.midp.security.Permissions.isValidDomainName(+26)
    at com.sun.midp.dev.DevMIDletSuiteImpl.create(+16)
    at com.sun.midp.dev.DevMIDletSuiteImpl.create(+74)
    at com.sun.midp.main.Main.runLocalClass(+20)
    at com.sun.midp.main.Main.main(+80)
Execution completed.
2798099 bytecodes executed
18 thread switches
1665 classes in the system (including system classes)
40932 dynamic objects allocated (2354324 bytes)
3 garbage collections (2138384 bytes collected)


I made a mistake and the content of appdb that belongs to Sun Java  Wireless Toolkit 2.5.02_1 for CLDC has been erased. Some configuration file was deleted which caused the error described above.

The fastest mode to solve this problem:
  • erase the folder named j2mewtk that is inside Documents and Settings under another folder named as your login user. (For instance, C:\Documents and Settings\moliveira\j2mewtk\)
  • run the Wireless Toolkit. It will recreate the folder j2mewtk and the problem will be solved.

O que acontece quando se apaga a pasta appdb

Ao tentar rodar um aplicativo j2me que estou desenvolvendo aqui na empresa, ocorria o seguinte erro:

Connecting to 127.0.0.1 on port 2800
Waiting for KVM...
Waiting for debugger on port 2419
Connection received.
Running with storage root C:\Documents and Settings\moliveira\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Running in the manufacturer security domain
Connected to KVM
Incorrect domain name, switching to 'null'
java.lang.NullPointerException
    at java.util.Hashtable.get(+6)
    at com.sun.midp.security.Permissions.isValidDomainName(+26)
    at com.sun.midp.dev.DevMIDletSuiteImpl.create(+16)
    at com.sun.midp.dev.DevMIDletSuiteImpl.create(+74)
    at com.sun.midp.main.Main.runLocalClass(+20)
    at com.sun.midp.main.Main.main(+80)
Execution completed.
2798099 bytecodes executed
18 thread switches
1665 classes in the system (including system classes)
40932 dynamic objects allocated (2354324 bytes)
3 garbage collections (2138384 bytes collected)


Eu apaguei por engano todo o conteúdo da pasta appdb do Sun Java Wireless Toolkit 2.5.02_1 for CLDC e com isso alguma configuração foi embora.

O modo mais rápido de resolver isso é:

  • apague a pasta j2mewtk que está dentro de Documents and Settings sob outra pasta que tem o nome do teu login. (Por exemplo, C:\Documents and Settings\moliveira\j2mewtk\).
  • execute o Wireless Toolkit. Ele recriará a pasta j2mewtk e o problema será resolvido.

terça-feira, fevereiro 16, 2010

Placa de circuito impresso pelo processo fotográfico

Todos que têm a Eletrônica como hobby precisarão criar suas próprias placas de circuito impresso (PCIs).

Quando a gente começa a brincar com a Eletrônica, normalmente os circuitos são muito simples e as plaquinhas também. Para fazê-las, dá para desenharmos os circuitos usando as canetas próprias para isso. Conforme avançamos com os conhecimentos, os circuitos tendem a ficar mais e mais complexos. Aí, já não será mais possível continuar a desenhar as placas manualmente.

Como faremos então? Há vários métodos para criarmos as PCIs: desenho manual, decalques, processo térmico, serigrafia, processo fotográfico, entre outros.

O processo fotográfico que descrevo neste artigo eu aprendi neste fórum: Faça placas de circuito impresso com qualidade profissional.

Assim, antes de continuar com o tema deste artigo, gostaria de agradecer a todos que participaram deste fórum por terem compartilhado suas experiências e conhecimentos, fazendo com que esse processo deixasse de ser uma arte oculta.

Um agradecimento especial vai para o Ferocactus e para o Akira386. Eu não os conheço, mas o empenho deles em divulgar esse método foi uma iniciativa fantástica. Obrigado.

Este processo que vou descrever permite a criação de placas com trilhas extremamente finas com alta qualidade, sendo que o resultado final dependerá muito da prática. Quanto mais prática, melhor os resultados (como quase tudo na vida).

Outra coisa que o amigo leitor deve ter em mente: o processo que descrevo foi aquele com o qual eu melhor me adaptei. Existem variações sobre como fazer as placas por esse processo. Aconselho a todos os interessados neste método que leiam a discussão no fórum, desde o início, para entender os erros e acertos do pessoal, bem como para aprender as diversas variações que existem.

Vou assumir que de algum modo tu tens o layout da placa de circuito impresso (baixaste da internet um pdf ou uma imagem jpg ou tens os arquivos de algum programa específico para criar placas, como o KiCAD ou o Eagle, por exemplo.

Tu deves adquirir uma emulsão para confecção de matrizes resistentes a tintas solúveis em água e seu respectivo sensibilizante. Geralmente essa emulsão é de cor verde, independente de quem é o fabricante.

Existem várias marcas no mercado. Eu utilizo a emulsão e o sensibilizante da marca Tec-Screen, conforme mostrado na figura 1 abaixo.
Figura 1 - Emulsão e sensibilizante.

As ferramentas que tu vais precisar são:
  • uma seringa de 1ml, dessas de insulina. Comprar na farmácia.

  • uma seringa de 10 ou 20ml. Comprar na farmácia.

  • um rolo de espuma, que pode ser adquirido em qualquer loja de tintas.

  • um pincel. Pode ser obtido em papelarias.

  • um esponja scotch-brite. Comprado na farmácia ou tirado da cozinha de casa ;)

  • uma vasilha plástica em que a placa caiba. Eu reaproveitei uma embalagem dessas de paçoquinha.
     
  • uma escova de dentes macia. Podes comprar uma nova ou reaproveitar uma usada.

  • sapólium radium (outro ataque a cozinha)
     
  • um secador de cabelos (pegue emprestado da patroa, para não gastares dinheiro com isso ;)

  • ventilador (com certeza tens um em casa). Opcional.

  • uma centrífuga (vou falar dela mais adiante). Opcional.
  • uma impressora (jato de tinta ou a laser).

A figura 2 abaixo ilustra quase todos os materiais citados.

Figura 2 - Alguns dos materiais necessários.

Preparação da imagem.
Deves usar algum programa de desenho decente (o Gimp, por exemplo), e obter uma cópia invertida e em negativo do layout para o qual queres gerar a placa.

A figura 3 mostra um layout normal e a figura 4 mostra o mesmo layout em negrito e espelhado, para que tu tenhas uma ideia do que estou falando.

Figura 3 - Exemplo de layout.

Figura 4 - Layout em negativo e invertido.

Obtenção do fotolito.
Imprima a imagem invertida e em negativo do circuito em papel para transparências. Faça 3 cópias idênticas, recorte-as e monte uma sobre a outra, de modo a aumentar a opacidade da mesma.

Por quê três cópias? Porque geralmente em uma única impressão a parte em negro não fica tão opaca quanto deveria.

A figura 5 mostra como fica a opacidade da impressão. Ignore a mancha branca na imagem do meio. É apenas o reflexo da luz.

Figura 5 - Opacidade de Uma única impressão em papel para transparências próprio para impressora jato de tinta.

Pode-se notar na imagem da figura 5 que o preto não é totalmente preto. A figura 6 mostra o fotolito montado com 3 imagens sobrepostas.

Figura 6 - Fotolito montado com 3 imagens sobrepostas.

Veja na figura 6 como a sobreposição das imagens torna o desenho muito mais opção.

Para imprimir eu uso a impressora jato de tinta Epson Stylus Photo R270, configurada para imprimir em papel fotográfico com qualidade máxima.

O papel utilizado é o papel para transparências com tarja para impressoras jato de tinta, formato A4 de 100 micra, da Sistem (Sistem é escrito com i mesmo).

Notas:
  • a impressão deve ser feita no lado fosco do papel.
  • após a impressão, deixe a impressão secar naturalmente por, no mínimo, uns 15 minutos. Não force a secagem de modo algum. Nem com secador e nem com ventilador.

Preparação da Emulsão
Em um ambiente escuro, misture 9 partes de emulsão para 1 parte de sensibilizante. Com uma espátula, um palito ou qualquer outra coisa que tenhas em mãos, mexa a mistura devagar por uns 5 minutos. Depois deixe-a descansar, no escuro, por pelo menos uns 30 minutos. Isso é necessário para que não fiquem bolhas na mistura, pois elas atrapalham o processo.

Eu uso a seringa maior (de 10 ml) para puxar exatamente 9ml de emulsão de dentro do pote e a seringa de 1ml para pegar exatamente 1ml de sensibilizante.

Misturo ambos em um pote vazio de filme fotográfico, pois nele cabe perfeitamente essa quantidade além dele isolar muito bem a luz dos produtos. A figura 7 mostra o recipiente onde as misturas ficam.

Figura 7 - Recipiente de filme fotográfico, usado para guardar a mistura emulsão + sensibilizante.

Notas:
  • O sensibilizante (dicromato de amônio) é altamente tóxico, assim, use luvas e evite o contato direto com a pele. Estás avisado. Depois não vá chorar.
  • Conserve tanto o sensibilizante quanto a emulsão longe da luz.
  • Só misture os produtos quanto fores usá-los, e na quantidade necessária,  pois a partir do momento em que a mistura é feita, o processo de endurecimento se inicia.
  • A mistura obtida, se bem acondicionada e longe da luz (como por exemplo, dentro do tubo de filme fotográfico), dura vários dias.
  • Lave as seringas muito bem logo após o uso, retirando qualquer resto de emulsão ou sensibilizante, pois do contrário elas não poderão ser usadas novamente. As seringas travam de tal modo que não é possível puxar ou empurras para fora nenhum fluído. Guarde as seringas desmontadas.
    Minha experiência mostra que, mesmo bem lavadas, se forem guardadas com o êmbolo dentro da seringa, o atrito aumenta muito, dificultando seu uso.
Limpeza da placa
Para limpar a placa, use a esponja scotch-brite (lado mais abrasivo) e detergente. Para ter certeza que a limpeza está adequada, faça o seguinte: molhe a placa e vire-a de lado. Caso se forme uma película de água por toda a placa, ela estará bem limpa. Do contrário, continue com a limpeza.

Após a placa estar bem limpa, seque-a com papel higiênico e/ou secador de cabelos. Não toque mais no cobre!

Aplicação da Emulsão na placa
Em um ambiente o mais escuro possível, com um pincel ou espátula, aplique a mistura emulsão + sensibilizante preparada anteriormente por toda a placa, deixando a camada aplicada o mais uniforme possível.

Tome cuidado para que a camada aplicada não fique nem muito fina nem muito grossa. Tente evitar a formação de bolhas.

Com o pincel, eu aplico uma camada generosa da mistura sobre a placa e depois a coloco sobre a centrífuga, para que ela fique mais homogênea.

A minha centrífuga nada mais é que uma ventoinha tirada de uma sucata de  fonte de PC. Eu coloque uma fita dupla face sobre a ventoinha e depois prendo a placa sobre a fita.

Se tu fores usar uma centrífuga, lembre-se de proteger as laterais, pois ela vai espalhar emulsão para todos os lados e aí a patroa (ou a mamãe, dependendo do caso), não vais gostar nem um pouco ;).

As figuras 8 e 9 mostram a minha centrífuga.
Figura 8 - centrífuga desmontada.

Figura 9 - centrífuga montada com a placa e a proteção anti-sujeira.

Repare nas imagens,  mancha verde rodeando toda a parede do anteparo. Se não fosse pela proteção, eu teria sujado tudo em volta quando tivesse usado a centrífuga e provavelmente a patroa teria me matado ;)

Nota: Não deves deixar a rotação da centrífuga muito alta nem deixá-la ligada por muito tempo, porque senão a camada de tinta ficará muito fina.

Se tiveres uma fonte de tensão variável, podes começar alimentando o circuito com uma tensão baixa, digamos uns 3 volts, que tu irás aumentando gradualmente, para que a velocidade da ventoinha aumente também de modo gradual.

Eu não tenho essa fonte regulável, então uso uma fonte de 6V para alimentar a ventoinha (de 12V), fazendo com que ela gire mais de vagar que o normal.

Deixando a emulsão secar na placa
Ao fim do processo de aplicação de emulsão + sensibilizante, deves deixar a placa secar por algum tempo em um local escuro!

Eu deixo a placa secar por uns 10 ou 15 minutos ao natural, depois eu ligo o ventilador no mínimo (não muito próximo à placa), para apressar o processo de secagem. De 30 a 60 minutos a placa estará totalmente seca.

Quando a placa estiver completamente seca, verás que de verde escuro, com aparência de úmida, a tinta passará a um verde bem claro e sem a aparência de estar úmida.

Nota:
  • Se a placa não estiver totalmente seca, o fotolito estragará quando formos usá-lo ou na hora de removermos a tinta ela sairá nas partes que não estiverem secas.
  • Se deixarmos a emulsão muito tempo sobre a placa, a sua remoção será muito difícil e provavelmente tu estragarás o serviço ao tentar remover a emulsão.
Sensibilização da Placa
Com a placa seca, ainda em ambiente escuro, o seguinte:
  • coloque uma placa de vidro sobre a mesa.
  • centralize a PCI, com a emulsão virada para cima, sobre a placa de vidro.
  • coloque o fotolito sobre a placa. O lado fosco, ou seja, aquele onde a tinta se depositou deve ficar em contato com a emulsão!
  • coloque a outra placa de vidro sobre o conjunto  PCI + fotolito, formando um sanduíche.

  • A seguir, coloque o abajur com a lâmpada sobre a placa de vidro e acenda a luz.
O tempo de exposição varia com o tipo de luz utilizada e com a distância da lâmpada para a PCI. Eu uso uma lâmpada fluorescente de 34W, ligada por 15 minutos a uma distância de 10cm da PCI.

Há pessoas que usam lâmpadas halogenas, de luz negra, ultra-violeta com as mais diversas potências e até a exposição direta sob o sol.

Tu terás que fazer teus testes para determinar por quanto tempo deverás expor a placa com emulsão baseado no método que fores usar.

A figura 10 mostra o sanduíche formado pelas placas de vidro (como as fatias do pão) e pela PCI + fotolito (como o recheio), expostos à luz da lâmpada fluorescente.
Figura 10 - sensibilização da placa.

Revelação

Nada mais é do que a remoção da emulsão das partes que deverão ser removidas pelo percloreto de ferro durante a corrosão. Esta etapa também deve ser feita em ambiente escuro.

Essa etapa é chamada de revelação porque a imagem do layout vai aparecendo igual ao que ocorre quando se revela um filme fotográfico.

Faça o seguinte:
  1. remova o fotolito de cima da PCI. Se neste passo a camada de emulsão se soltar, limpe a placa recomece o processo do zero. Prováveis causa do problema:
    • a placa não secou o suficiente;
    • tu não misturaste a emulsão + sensibilizante na proporção adequada;
    • puseste o lado brilhante do fotolito em contato com a emulsão ao invés do lado fosco;
    • não comprimiste o fotolito sobre a emulsão de modo adequado;
    • a emulsão ou sensibilizante são muito velhos. 
     
  2. insira a placa em uma vasilha de plástico com água morna (quente o suficiente que consigas mergulhar a mão nela sem se queimar) e deixe-a submersa por 90 segundos.
  3. mantendo a placa submersa, passe o rolo, sempre úmido, sobre a placa, bem delicadamente. A emulsão deve começar a se soltar. Se todas as etapas anteriores tiverem sido feitas adequadamente, a emulsão vai se soltar facilmente, ficando apenas as trilhas e pads que compõe o layout.

    Após 5 minutos passando o rolo sobre a placa, somente o desenho do layout deverá estar com a emulsão. No restante da placa, o cobre deverá ser visto claramente.

    Se as trilhas começarem a se soltar, é sinal que alguma coisa deu errado em alguma etapa anterior. Vais ter que limpar a placa e recomeçar do zero. As causas são as mesmas da etapa 1.

    Assim que toda a emulsão tiver sido removida, tire a placa da vasilha com água e use um secador de cabelos para secá-la bem. Eu deixo a placa morna com o secador.
  4. Se o cobre não estiver brilhante é sinal que uma película de emulsão se formou sobre a placa (popularmente conhecido como véu). Para retirar o véu, primeiramente a placa deve estar muito bem seca (secagem feita na etapa anterior).

    Despeje uma quantidade generosa de sapólium radium sobre a placa e depois uma pequena quantidade de água, o suficiente para formar uma pasta. Com a escova de dentes esfregue bem a placa para remover o véu (mas não aplique força exagerada para não soltar as trilhas).

    Após 1 minuto esfregando a placa, lave-a delicadamente com água e seque-a bem com o secador. Verifique se ainda há véu em alguma parte da placa. Se houver, ponha o sapólium sobre as partes que precisam ser limpas e repita a operação.

    Lembre-se de parar a cada um  minuto e secar bem a placa para evitar que as trilhas se soltem. Normalmente duas ou três vezes são o suficiente para tirar todo o véu.
A figura 11 mostra duas placas. A de cima foi danificada durante a lavagem. O problema foi causado por uma camada muito grossa de emulsão, que não secou adequadamente.

Repare no aspecto de sujeira da placa de baixo. Esse é o famoso véu.
Figura 11 - Duas placas após a revelação.

Preparando a placa para a corrosão.

A emulsão não vai aguentar muito tempo sob a água. Daí a necessidade dessa etapa.

Com a placa totalmente limpa e seca, vamos embeber um cotonete com o sensibilizante e aplicar sobre a emulsão que reveste as trilhas e pads. Após isso, devemos reexpor a placa à luz até que a emulsão fique preta.

Eu gosto de deixar a placa torrando sob o sol forte.

A figura 12 ilustra uma placa com as trilhas pretas após ter sido exposta ao sol com a nova camada de sensibilizante. Note que eu passei sensibilizante até em áreas onde não haviam trilhas. Isso está errado (além de ser um desperdício de material). Mas eu estava com pressa e fiz essa caca.

Figura 12 -placa com emulsão negra após exposição ao sol com segunda aplicação de sensibilizante.

Corrosão
Eu faço a corrosão com percloreto de ferro. Não use percloreto muito velho, pois senão pode acontecer uma das duas coisas (ou ambas):
  • a emulsão começará a se soltar e as trilhas serão corroídas.
  • a emulsão amolecerá e permitirá que o percloreto se infiltre e corroa as trilhas.

A figura 13 ilustra uma placa já corroída.

Figura 13 - placa já corroída e limpa.

O processo parece mais trabalhoso do que é na realidade. Por isso, não se impressione se parece muita coisa para ser feita. Aprenda a fazer placas com esse processo que ele te permitirá fazer placas bem complexas.

Escolha uma placa fácil de ser feita para aprender esse método. Ou seja, placas com poucas trilhas e sem trilhas muito finas.

Excepcionalmente, para este artigo, eu NÃO vou responder a nenhuma pergunta sobre o método. Repetindo: eu NÃO vou tirar dúvida nenhuma que seja postada aqui. Vou solenemente ignorar qualquer pergunta sobre o método.

Por quê? Por dois motivos:
  1. Tu deverias ler todo o fórum, pois todas as dúvidas que tiveres provavelmente já foram respondidas lá.
  2. o fórum é o melhor lugar para postares todas as tuas dúvidas. Assim o conhecimento ficará concentrado em um lugar apenas. Isso é bom para todos.
E quando fores postar alguma pergunta no fórum, por favor, não dirija a pergunta para mim. Qualquer um dos usuários tem condições de te ajudar (aliás, quase todos tem muito mais experiência que eu nesse assunto).

Espero que tenhas gostado e que te seja útil.

quinta-feira, janeiro 28, 2010

Ubuntu package

Yesterday I did something I should have done long ago: I created a package for Ubuntu.

In theory it would be just a matter of download the sources and execute the magical commands (./Configure, make and make install).

In practice, for those who just want to use the program, it is very boring and difficult, because the user will have to install each of the development libraries (eg, libgtk +2.0-dev) and their dependencies.

Some time ago a User (which now I think I can call a friend) was trying to compile the GMouseTool and found out several problems (mostly my fault).

He reported me all problems he was facing to compile GMouseTool and I tried to fix them.

I thought it was an absurd he waste his time when the only thing he wanted was to use the program.

I left my laziness aside and I built a package for Ubuntu 9.10, 32-bit version. This way he wouldn't have to worry about the compilation process.

I want to thank John Desanta by not giving up and for helping me solve many problems GMouseTool had.

Oh, and I will release a package for Ubuntu 9.10 (64-bits) until this Sunday.

Pacote para Ubuntu

Ontem eu fiz algo que já deveria ter feito a muito tempo: criei um pacote para o Ubuntu.

Em teoria qualquer um só deveria ter que baixar os fontes e executar os comandos mágicos (./configure, make e make install).

Na prática, para quem quer apenas usar o programa, isso é muito chato e trabalhoso, porque o usuário terá que instalar cada uma das bibliotecas de desenvolvimento (por exemplo, libgtk+2.0-dev) e suas respectivas dependências.

A algum tempo um usuário (que agora acho que posso chamar de amigo) estava tentando compilar o GMouseTool e estava encontrando vários problemas (quase todos por minha culpa).

Conforme ele ia me informando dos erros, eu ia fazendo as correções e ele tentava de novo. Pensei um pouco e achei um absurdo ele estar perdendo seu tempo quando a única coisa que ele queria era usar o programa.

Daí deixei minha preguiça de lado e gerei um pacote para o Ubuntu 9.10, versão de 32 bits para que ele não precisasse mais se preocupar com a compilação.

Assim, quero agradecer ao John Desanta por não ter desistido e por ter me ajudado a resolver vários problemas no GMouseTool.

Ah, e devo disponibilizar um pacote para o Ubuntu 9.10 de 64 bits até este domingo.

quarta-feira, janeiro 06, 2010

The order of the include files make a difference.

Yesterday I was facing some problems to use Google C++ Testing Framework (version 1.4.0).

I got a bunch of error messages from Visual Studio 2005 that you can see below.

Error    1    error C2766: explicit specialization; 'std::numeric_limits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\limits    482    
Error    2    error C2766: explicit specialization; 'std::iterator_traits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    678    
Error    3    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1143    
Error    4    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1149    

To make a long story short: the order of the include files made a difference. I put line
#include <gtest/gtest.h>
before all other include files and my problems vanished!

A ordem dos tratores altera o viaduto

Ontem eu tive alguns problemas ao tentar utilizar o framework de testes do Google (versão 1.4.0).

Eu recebia várias mensagens de erro do Visual Studio 2005 (que tu podes ver abaixo:

Error    1    error C2766: explicit specialization; 'std::numeric_limits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\limits    482    
Error    2    error C2766: explicit specialization; 'std::iterator_traits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    678    
Error    3    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1143    
Error    4    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1149    

Para encurtar a história, a ordem dos includes fez toda a diferença. Eu coloquei a linha
#include <gtest/gtest.h>

antes de todos os outros includes e os meus problemas desapareceram.