Creating and converting icons to gnome dia – Part I

Before I start, I’d like to say thanks to all people that are using the icons that I made. I confess that I’m surprised with a lot of mails that I’ve been receiving about this project.

I know that there are a lot of guys curious about to convert their icons to shape file format.¬† So, finally I’m trying to dedicate a time to explain how to do that.

The first thing that we need to think is that shape files are totally limited. During my work to convert these icons I’ve noticed some details about its creation:

  • Do not try to use gradient in shape files. If you need this effect you must construct this using retangular objects in a color scale.
  • The format entitled plain svg by Inskscape has some differences if comparing to shape, an important difference is that colors are referenced by names in svg and referenced by hexadecimal in shape.
  • Depending of the way that the object was made, probably you’ll need to remake this. Some resources used in vetorial applications doesn’t work to shape format.
  • Try not to use lines when you’re drawing an object to be saved in a shape file. Sometimes, I don’t know what happens that the line looses its coordinates. So, use a thin rectangle filled in the color that you want.
  • Do not use outlined objects. If you need an object outlined, you must use two objects in a different size and pick up the lower on the largest. Your largest object is your outline.

To be continued.

New network icons schema to Gnome Dia

After a lot of time searching some friendly icons to be used in Dia and no results obtained, I decided to face this problem and generate my own icons collection.

I like Gnome Gorilla’s icons style very much, so I decided to convert most of them to Dia. I had to mix some icons to make a new in according its preposition.

I found out on Net the svg2shape.xslt to make the conversion, but many erros came up when I tried to convert an Inkscape plain SVG.

Problems associated with compability was seen. An example about is that a shape file doesn’t accept opacity. Many Gnome icons have opacity and they are constructed using a different structure to be in conformity with Dia. Another problem detected is that shape files don’t accept colors by their names. You can’t use black to describe a black color, only hexadecimals six digits are accepted.

I’ve written a PHP script to read the shape file created by the command xsltproc and make some modifications to correct them. In a future post I can explain better this and post the hard way to get this.

Here you can see a simple result of the conversion and adaptation:

Gnome icons scheme to Dia

Gnome icons schema to Dia

If you liked it, click here to make the icons download. To add this in your Dia you just need to follow the next step:

# cd /usr/share/dia

# cp PATH/rib-network.tar.gz .

# tar zxvf rib-network.tar.gz

If your Dia is started please close this and start it again. So in your combo list choice RIB-Network. Now you can be free to create your Network diagrams with a lot of colors and beauty. ūüôā

Convertendo arquivos com codifica√ß√Ķes diferentes

Utilizei durante um bom tempo a codificação ISO-8859-1 para editar e construir meus arquivos. Porém após a mudança para UTF-8 tive vários problemas com a codificação dos arquivos, daí que encontrei o iconv e este salvou minha vida.

Outro fato interessante tamb√©m √© receber arquivos com codifica√ß√Ķes diferentes de outras pessoas e ficar com aquele problema chato na acentua√ß√£o dos arquivos.

O iconv serve para mudar de uma codificação para outra e possui uma sintaxe muito simples e fácil.

Para converter um arquivo de ISO-8859-1 para UTF-8 basta apenas fazer o seguinte.

# iconv --from-code=ISO-8859-1 --to-code=UTF-8 < oldISOfile >  newUTF8file

Você também utilizar o inverso da situação acima:

# iconv --from-code=UTF-8 --to-code=ISO-8859-1 < oldUTF8file >  newISOfile

E n√£o limite-se somente √† isto, voc√™ tamb√©m pode trabalhar com outros padr√Ķes de codifica√ß√£o e obter o resultado que quiser. Aqui voc√™ pode saber mais sobre tipos de codifica√ß√£o.

Download de pacotes .deb com todas suas depend√™ncias

Apesar do mundo estar cada vez mais conectado à Internet, às vezes enfrentamos alguns problemas que nos impossibilitam de ter o acesso à rede. Um exemplo interessante seria a mudança de casa e o pedido de transferência de um serviço ADSL para um novo endereço, por exemplo.

Vivendo este problema necessitava instalar o pacote gphpedit no computador em casa. Porém não encontrava nenhuma maneira fácil de fazê-lo devido à quantidade de depedências que eu precisava copiar através da rede de um amigo e levá-las em um dispositivo móvel de armazenamento qualquer: um pendrive, cd ou algo do tipo.

Poderia até utilizar o Synaptic para procurar o devido pacote e gerar através dele um script para fazer o download das dependências, mas o objetivo era fazer diretamente pelo console.

Cheguei até a improvisar um shell script para fazer isso, mas a solução era limitada, pois o script pegava somente as dependências do gphpedit. Se alguma biblioteca necessária para a instalação do gphpedit precisasse também de uma outra biblioteca ou pacote, o script não a pegava.

Foi da√≠ que recebi uma dica do Theo para usar o apt-rdepends e conseguir listar recursivamente todas as depend√™ncias. O √ļnico problema √© que ele n√£o tem a capacidade de fazer o download destes pacotes diretamente. E novamente tive que montar um script para fazer isso.

Uma  nota é que o apt-cache também proporciona a listagem de dependências do pacote, mas não de maneira recursiva.

Caso queira ver as dependências pelo apt-cache apenas rode:

# apt-cache depends nomedopacote

N√£o conhecia o apt-rdepends pois n√£o vem instalado por padr√£o no Debian/Ubuntu. Para instal√°-lo rode:

# aptitude install apt-rdepends

Bom, depois ainda resta um trabalhinho sujo para criar o script, mas é bem fácil. Antes de começar crie um diretório para que na inicialização dos downloads os pacotes não fiquem espalhados.

# mkdir gphpedit

# cd gphpedit

Para criar o script faça:

# apt-rdpends gphpedit > depends.sh

# chmod u+x depends.sh

# vi depends.sh

Na primeira linha do arquivo adicione o interpretador: #!/bin/bash

Substitua o nome dos pacotes que possuem dependências com o seguinte comando no vi:

ESC +  :%s/^[a-z]/#\1/g

Note que agora todos os pacotes ficaram com um coment√°rio na frente. O pr√≥ximo passo √© alterar o valor dos termos “Pr√©-Depende:” ou “Pre-Depends:” para “aptitude download”. Novamente no vi fa√ßa:

ESC + :%s/Pré-Depende:/aptitude download/g

(Se seu sistema estiver na l√≠ngua inglesa utilize “Pre-Depends”:).

Agora altere somente os termos “Depende:”¬† da mesma maneira:

ESC + :%s/Depende:/aptitude download/g

(Se seu sistema estiver na língua inglesa utilize Depends:).

Ficou faltando apenas um detalhe. Apagar as informa√ß√Ķes sobre vers√Ķes delimitadas entre par√™nteses. Nada que uma pequena express√£o regular n√£o ajude:

ESC + %s/\((.\+\)//g

Bom, agora é só executar seu script e esperar pelo download.

# ./depends.sh

Bases controladas no Gnuteca

Iniciamos o trabalho para implementar bases controladas no Gnuteca. Estas bases ser√£o integradas √† tela de cataloga√ß√£o para servir de suporte √† registros que n√£o podem ser recuperados pelo z39.50, e tamb√©m fazer uma gest√£o do conte√ļdo gerado pela Biblioteca.

As interfaces j√° foram desenhadas, por√©m ainda sofrer√£o algumas pequenas altera√ß√Ķes na implementa√ß√£o para efeitos de filtragem dos dados.

O sistema contar√° agora com as seguintes bases controladas:

  • Autores;
  • Autores corporativos;
  • Tabela de cutter;
  • Nomes de s√©ries / cole√ß√Ķes;
  • Editoras;
  • Locais de publica√ß√£o; e
  • Vocabul√°rio controlado: assunto, subdivis√£o geral, subdivis√£o cronol√≥gica e geogr√°fica.

Para efeitos de visualização acompanhe um exemplo da tela de autores:

Tela de autores

As demais telas seguem o modelo proposto. Atrav√©s de um bot√£o que ser√° indexado ao lado do campo correspondente, o usu√°rio poder√°¬† carregar as informa√ß√Ķes de uma lista pr√©-definida. Uma vez que a informa√ß√£o for selecionada nesta lista, o campo ser√° automaticamente preenchido. Quando o usu√°rio identificar algum erro nestas informa√ß√Ķes ele poder√° modific√°-las diretamente na tela. Concluindo as altera√ß√Ķes todos os registros ser√£o atualizados com a informa√ß√£o correta.

Todas as telas ser√£o carregadas utilizando o conjunto de tecnologias AJAX. Esperamos que estas novas altera√ß√Ķes ajudem o Bibliotec√°rio ter um maior controle sobre a consist√™ncia dos dados e consigam transmitir a informa√ß√£o da melhor maneira poss√≠vel.

Falta Informa√ß√£o para realizar a busca

Quando estiver com o seu Gnuteca configurado e tiver feito a catalogação de algum livro e a busca não funcionar, retornando a mensagem: INFORMAÇÃO FALTA INFORMAÇÃO PARA REALIZAR A BUSCA; é sinal de que você está com o seu register_globals = Off.

Para ativá-lo e colocar o sistema para funcionar corretamente faça a edição de seu /etc/php4/apache/php.ini e altere esta opção para On. (Obs: /etc/php4/apache/php.ini seria o path no Debian, você pode localizar o seu php.ini através do comando slocate php.ini ou whereis php4).

Após fazer a alteração salve o arquivo.

Dê um reload no Apache e pronto.

Utilize sua busca perfeitamente. (Vivendo e aprendendo).

Corre√ß√£o de javascripts bugados na tela de cataloga√ß√£o

O Gnuteca apresentava vários problemas quanto à catalogação de registros quando o assunto era Javascript.

N√£o aguentando mais estes problemas “chatos” resolvi achar a natureza do problema. Encontrei e corrigi os arquivos, o bug se dava quando o valor lookup.defaults n√£o era encontrado.

No código ele declarava o lookup.defaults somente quando a variável era um array, mas quando a variável era nula ele retornava um erro dizendo que o lookup.defaults não era válido.

Adicionei uma condi√ß√£o de que se o valor n√£o fosse array, ele retornava um array nulo com o valor .defaults declarado. Desta forma os scripts se comportaram de maneira correta, fazendo com que a tela de cataloga√ß√£o possa seja utilizada em vers√Ķes mais novas do Mozilla Firefox.

Se eu tiver um tempinho vou “emprestar” um computador que roda Rwindows e testar a cataloga√ß√£o no IE, mas declaro que isto n√£o √© prioridade.