terça-feira, 17 de dezembro de 2013

Teclado volta para inglês ao reiniciar no Ubuntu 13.10

Então eu atualizei meu notebook e desktop com o Ubuntu 13.10 pensando que iria ser legal, mas depois não me pareceu uma boa ideia. Além do gráfico que as vezes borra em um ponto e depois volta, já tive alguns travamentos, poucos, mas acontecem. Porém o que mais me incomoda é que, a cada vez que inicio o computador, o teclado desconfigura.

Todo dia, ligo o computador, começo a digitar e percebo que o "ç" e os acentos estão todos fora do lugar: meu teclado está configurado como Inglês (EUA) ! Então uso o atalho no relógio e clico em "PT"(Português Brasil) e está resolvido. Porém, é só reiniciar e tem que fazer de novo. Irritante !
Vamos lá a solução definitiva que encontrei:

Abra a "configuração do sistema". Geralmente tem um atalho na barra lateral, também tem outro atalho no menu que usamos para desligar.

Na configuração do sistema, abra a opção "Suporte a Idiomas"
 Por fim, na janela que abriu, marque "Sistema de método de entrada do teclado" como "nenhum".

Após fazer isso, o teclado irá fixar na sua primeira opção de idioma ao reiniciar.

Lembrem-se, eu não estou ensinando configurar o teclado, eu suponho que já tenham feito a configuração correta e que estejam com esse bug que troca o idioma do teclado para inglês mesmo que essa não seja sua configuração principal.

Té + !

quinta-feira, 17 de outubro de 2013

[OCR] Transformando PDF/Imagem em texto (Ubuntu)

Aí vieram até o "cara da informática", eu no caso, com algumas folhas na mão e pediram:
 - Bota essas folhas no scanner e transforma em texto para gente por favor?  #partiu !

A impressora aqui no trabalho não faz essa mágica. Então lá fui eu atrás de software...
A palavra chave aqui é OCR: Optical Character Recognition!
OCR é a tecnologia para reconhecimento de caracteres. Como numa imagem não podemos simplesmente copiar e colar o texto, utilizamos programas que implementam essa tecnologia a fim de extrair esses caracteres.

Os procedimentos a seguir foram executados no Ubuntu 13.04.
Primeiramente eu baixei um programa de OCR, o Tesseract, e junto, seu pacote para reconhecer caracteres em português:

  • sudo apt-get install tesseract-ocr tesseract-ocr-por imagemagick

Notem que também será feita a instalação do Image Magick, isso porque irei utilizá-lo num script para automatizar o processo. Image Magick é um incrível editor/conversor de imagem através de linha de comando. Se um dia precisarem escrever um script para editar/converter imagem, busquem mais por esse software, recomendo!

Se você passou uma só folha no scanner e ainda salvou em imagem, simplesmente faça:

  • tesseract minhaImagem.jpg novoArquivoTexto

Mas se você colocou no scanner várias folhas e ainda transformou em PDF, meu caso, vamos fazer um script para automatizar sua conversão:

#!/bin/sh
STARTPAGE=1 # Digite aqui o número da primeira página a ser lida
ENDPAGE=3 # Digite aqui o número da última página a ser lida
SOURCE=meuarquivo.pdf # Nome do PDF original
OUTPUT=meuarquivo.txt # Nome do arquivo de saída. O resultado é dado em texto simples.
RESOLUTION=300 # Digite aqui qual a resolução que o documento foi scaneado

touch $OUTPUT
for i in `seq $STARTPAGE $ENDPAGE`; do
    convert -density $RESOLUTION $SOURCE\[$(($i - 1 ))\] page.jpg
    echo processing page $i
    tesseract -l por page.jpg tempoutput
    cat tempoutput.txt >> $OUTPUT
done

Salve esse bloco num arquivo de texto, sugestão, converterPDF2TXT.sh
Altere os primeiros parâmetro que estão comentados com as informações do seu arquivo de entrada e saída. Depois altere as permissões do arquivo para execução e então é só rodar!

  • chmod 775 converterPDF2TXT.sh
  • ./converterPDF2TXT.sh

O interessante é scannear utilizando uma resolução alta, por exemplo, 300dpi.

Há uma maneira de fazer tudo isso graficamente, sem precisar do script shell. Instale o gscan2pdf, ele fará interface para o Tesseract. Porém, não tive sucesso, esse programa não enxergou o Tesseract, então não converteu (problema em pc's 64bits). Fica a dica para quem quiser testar.

Té + gente !


quinta-feira, 26 de setembro de 2013

Criando um ambiente de desenvolvimento para Magento

Instalou-se o Magento 1.7 no servidor do meu cliente para ver como funcionaria.
Foi então que precisei ter um ambiente de desenvolvimento de tudo isso que estava no servidor.
Infelizmente não é só copiar e trocar as informações de conexão, tem alguns macetes pois o tal Magento faz cache de tudo.

Vamos aos passos

  • Copiar todos os arquivos para a pasta que deseja no seu computador.
  • Fazer uma cópia do banco de dados, pode ser através do MySQL WorkBench.
  • Restaure essa cópia no seu banco de dados local.
  • No Magento, altere o arquivo "app/etc/local.xml" com os dados de conexão do seu banco.
  • Apague tudo dentro das pastas de cache "var/cache/" e "var/session/".
  • Na tabela core_config_data procure os seguintes registros:
SELECT config_id, path, value FROM core_config_data
where path in ('web/unsecure/base_url','web/secure/base_url');


  • Altere o campo path com o endereço do Magento local, exemplo:

update core_config_data set value = 'http://127.0.0.1/'
where config_id in (<numero>,<numero>);

Pronto, feito isso deverá funcionar. Caso não altere o banco ou limpe o cache, ao iniciar o Magento ele irá redirecionar para o site de origem no servidor.

O que me ferrou na versão que eu estava trabalhando, é que duplicaram as tabelas, existia core_config_data e a mesma com prefixo mgt_core_config_data, até descobrir isso, quase tive uma sincope.

Outro detalhe é que não entrava a página administrativa, dava erro 404. Na verdade o SEO configurado no .htaccess do Magento não estava funcionando pois meu Apache, de sacanagem, veio com o módulo  "Rewrite" desativado. Entrei na pasta do apache (/etc/apache2) e ativei manualmente

 sudo cp mods-available/rewrite.load mods-enabled/rewrite.load

E, para finalizar, ainda tive tela branca ao logar no administrativo. Percebi que faltou instalar o Curl, então:

sudo apt-get install php5-curl

É isso gente, detalhes de como fazer um backup/restauração de banco ou cópia do site por FTP, isso eu deixo com vcs.

Té + !