Extraindo textos a partir de imagens

Realizando um atendimento (quem lê até pensa que sou médica rs) me deparei com um problema, tinha que converter um arquivo pdf de 29 páginas para texto, até aí blz, bastava usar um:

$ pdf2text

e pronto, textos a partir do pdf em instantes.

Mas por que facilitar se podemos complicar, né!
O resultado desse comando gerava infomações lixo que não batiam com o conteúdo do pdf.

Tentando de novo, só que agora com outro tipo de arquivo de saída:

$ pdf2html

e… BINGO!! Esse pdf foi gerado a partir de várias imagens organizadas e “linkadas” num index.html. Agora tenho um arquivo html e 29 arquivos PNG.
Mas não resolvi meu problema, cadê os textos?

Vamos à “mágica”!!

OCR é um acrónimo para o inglês Optical Character Recognition, uma tecnologia para reconhecer caracteres a partir de um arquivo de imagem, ou mapa de bits. Através do OCR é possível digitalizar uma folha de texto impresso e obter um arquivo de texto editável.
Fonte: Wikipédia

O que temos nos repositórios do OpenSuse que pode nos ajudar…

anjos:~ # zypper search ocr
Loading repository data...
Reading installed packages...

S | Name        | Summary                                                   | Type   
--+-------------+-----------------------------------------------------------+--------
  | gocr        | Optical Character Recognition                             | package
  | gocr-gui    | Optical Character Recognition - Basic Graphical Interface | package
  | ocrad       | GNU Ocrad--Optical Character Recognition Program          | package
  | ocrad-devel | Development files for GNU ocrad                           | package

Vamos instalar o gocr.

anjos:~ # zypper install gocr
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  gocr gocr-gui 

2 new packages to install.
Overall download size: 377.0 KiB. After the operation, additional 912.0 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package gocr-0.48-6.4.x86_64 (1/2), 364.0 KiB (895.0 KiB unpacked)
Retrieving: gocr-0.48-6.4.x86_64.rpm [done (68.6 KiB/s)]
Retrieving package gocr-gui-0.48-6.4.x86_64 (2/2), 13.0 KiB (17.0 KiB unpacked)
Retrieving: gocr-gui-0.48-6.4.x86_64.rpm [done]
Installing: gocr-0.48-6.4 [done]
Installing: gocr-gui-0.48-6.4 [done]

Prontinho.
Agora é só testar.

A interface do programa não é das mais atrativas, mas é funcional.

Aqui é bem simples, basta escolher o arquivo de imagem e clicar em “Run it”. Depois é só salvar o resultado num txt no menu File -> Save output.

Problema resolvido né! Quase…
Imagina ter que gerar o txt de 29 imagens. Por que não otimizar?

T=1;
for A in NACERP0102*.png
do
  if [ -f $A ] ; 
  then
    gocr -i NACERP0102-$T.png -o NACERP0102-$T.txt
  fi

T=$(($T+1));
done

Obs.: Quem deu uma força gerando o script foi meu amigo Cláudio Miranda.

Missão cumprida e usuário feliz. o/

Abraços. 😀

3º ETS – Encontro de Tecnologia Simonsen

No último sábado, dia 05/11, passei o dia em Padre Miguel, bairro muito conhecido por sua escola de samba, Mocidade Independente de Padre Miguel aliás, minha escola de samba do coração,* e aqui fica localizada a Faculdade Simonsen. Já visitei a Simonsen em outras circunstâncias (colegas graduandos) mas para um evento de tecnologia, essa foi a minha primeira vez.

3º ETS – Encontro de Tecnologia Simonsen

Assim que cheguei já senti um clima bacana, os organizadores muito animados e confiantes de que seria um ótimo evento (e foi!).

Com um certo atraso devido à dificuldade na liberação da credencial para os participantes, enfim o evento começa.

Pois bem, procurei os eventos mais focados em redes e segurança e o primeiro deles foi o Workshop de Pen Test com o Oscar Marques.

Ótima explicação sobre as técnicas e ferramentas de invasão e defesa. Tínhamos a nossa disposição instalado das máquinas o Backtrack, ou seja, a oportunidade para muitos ali de mexer pela primeira vez com port scanners, snnifers e etc. Infelizmente a maioria não tinha a menor noção de como mexer no Linux, o que dificultou um pouco o andamento e acredito que tenha limitado um pouco o aprofundamento no tema, mas vi que todos saíram ainda mais interessados no assunto.
Download Backtrack Linux – Penetration Testing Distribution

Assim que acabou fui tão rapidinho para a próxima palestra que consegui pegar uma boa parte da apresentação do Zeno Rocha sobre HTML5. Já havia assistido essa palestra no FSLDC, pelo menos foi o que pensei. Com uma palestra remodelada e cheia de novidades, pude ver novas funcionalidades muito atrativas para os que trabalham na área de programação para web.

Uma das coisas que me chamou a atenção foi uma animação bacana feita em CSS, o desenho em si ficou simples, eu sei, mas só pelo fato de não se utilizar Flash já deixou o vídeo bem rápido e na minha opinião muito criativo. Sem falar que adoro homem-aranha. 😉
Spiderman – Look Ma, no Flash!

Uma pausa para um flagra!!!
Olha só o Oscar Marques revisando a sua apresentação “PHP for Android” para o PHP’n RIO. Essa não tinha como não registrar, né!

Pra quem queria muita ação e pouco papo ta aí a palestra perfeita. Marcos Pitanga com “A arte do hacking ético”, nada de slides, apenas máquinas virtuais e muitas demonstrações. Utilizando diversas ferramentas vimos por exemplo, as senhas do /etc/passwd serem mostradas em texto puro com o auxílio do John (John the Ripper) e a invasão a um sistema Windows aproveitando a falha de segurança de uma das versões do Acrobat Reader 9.

E depois de passar a semana batendo a cabeça pra colocar o GingerBread no meu celular (Xperia mini pro) por que não assistir uma palestra de Android? Aproveitei pra trocar umas idéias com o Oscar antes da sua palestra sobre “Google Android, visão geral”. Uma viagem sobre a história, conceitos, aplicativos, novas ROMs e segurança.

Posso puxar sardinha pro meu lado? Posso? rs
Quando o Oscar comentou sobre as formas de se atualizar o Android num celular, fui surpreendida com o comentário sobre o meu recente esforço em colocar “na mão” o Android 2.3.7 no meu Sony. Felicidade foi pouco pra descrever o que senti. 😀

A palestra seguinte foi sobre um tema muito interessante, “Obsolecência Programada e Software Livre” com Rodrigo Graça. Ouvimos um pouco sobre a utilização do Software Livre na área de imagem e video, reaproveitamento de equipamentos considerados “lixos” eletrônicos e direitos autorais. Durante a apresentação, Rodrigo Graça mostra como mantém sua empresa utilizando somente ferramentas livres para criação de comerciais, propagandas e filmes como a mesma qualidade final das soluções proprietárias.

Para quem ficou curioso pra ver os trabalhos, ta aqui o site e olha que legal, todos os videos estão sob licença Creative Commons. 🙂
www.ricolandia.com

E por último mas não menos importante temos a palestra do Filipe Barros, aliás sua estréia como palestrante e já começou com o pé direito.
Com o tema “Entendendo e Explorando Falhas de Segurança” mais uma vez vimos as facetas do Backtrack.

Com o foco voltado para as vulnerabilidades web, Filipe Barros nos mostrou ao vivo como se aproveitar de falhas no PHP (oriundas de descuidos do desenvolvedor) para executar exploits, falhas em widgets do WordPress e numa das versões do Proftpd.

Ufa, quanta coisa pra um dia!!
Foi um ótimo evento, com palestras de alto nível só ultrapassaram um pouco os horários. Valeu e MUITO a pena ter vindo e espero voltar ano que vem!

*Um trechinho off-tópic: Vou contar uma breve historia pra vocês sobre a minha paixão pela Mocidade. Em 1997, ao ver uma alegoria que na época foi considerada uma revolução tecnológica: um garoto jogando videogame, com telas de televisão no lugar das lentes dos óculos, fiquei completamente vidrada, e dali em diante com a sequência de enredos voltados para essa área, foi meu primeiro “estalo” de que a tecnologia me atraia.
Hoje trabalho com muito orgulho na área e posso dizer que foi um sonho de criança que virou realidade…

Abraços. 😉

Latinoware 2011 – Parte 2

Segundo dia de evento e uma grade mais dedicada aos projetos web, mobile e as comunidades.

Entrada do Parque tecnológico de Itaipu

Na sala Espaço Uruguai o dia foi dedicado ao Python com palestras que iam desde a história até a aplicabilidade de suas ferramentas. Muitos puderam tirar dúvidas de como integrá-lo com outras linguagens e saber de soluções dentro e fora do país que usam Python.

Este é um dos slides da palestra “Por que Python”. Onde os navegantes de primeira viagem dessa linguagem puderam conhecer a grande quantidade de empresas que apoiam e utilizam o Python.

Palestrante: Marcos André Lopes Mendes

Agora foi a hora de descontrair um pouco.
Quem não conhece o @ProgramadorReal ??
Quem nunca viu ou passou por uma situação das tantas já ilustradas em suas tirinhas?
Durante a palestra “Estudos de caso do site Vida de Programador”, aliás uma das mais procuradas do dia, os participantes conheceram um pouco mais da história do Vida de Programador, sua evolução e como se tornou um dos grandes sucesso da internet.

Palestrante: André Noel

Passeando pelos stands era fácil parar para trocar idéias com “feras” do Software Livre. Olha quem encontrei no stand da Espírito Livre.

João Fernando Costa Júnior - Revista Espírito Livre / Alessandro Silva - FSLDC / Carlos Eduardo Cruz (Cadonico) - Gnugraf

Outro ponto forte do evento foram as demonstrações da galera da Robótica onde todos podiam interagir com as criações. O maior sucesso ficou por conta dos jogos, sempre tinha alguém olhando e esperando sua vez de jogar um pouquinho.

Cantinho da Robótica

É isso galera, fico por aqui. Infelizmente não ficarei para o terceiro e último dia do evento, mas não quer dizer que não ternhamos um resumo de tudo de bom que rolou, pelo contrário, o amigo Laercio Motta (@laerciomasala) publicará em seu blog http://laerciomotta.com/ e aqui também o que rolou de melhor no dia 21/10.

Abraços. 😀

Latinoware 2011 – Parte 1
Latinoware 2011 – Parte 3

Latinoware 2011 – Parte 1

O que dizer da minha primeira visita ao Latinoware?
Pra começar, muito bom poder conhecer pessoas e rever amigos, o que aliás está virando uma marca em eventos de tecnologia, né! Gente se esbarrando num evento aqui, num stand ali, num saguão de aeroporto acolá… e o que falar das redes sociais?
O que não faltaram foram maneiras de interagir com as pessoas. Uma estrutura de internet sem fio de tirar o chapéu e vários painéis digitais colocados em frente as salas de palestras mostravam as mensagens postadas no twitter com a hastag #latinoware e toda a programação do dia. Apesar de não estar sincronizado com o horário.

Painéis digitais.

Numa edição recorde de público, o assunto mais abordado na cerimônia de abertura foi a sustentabilidade.
Ao invés de utilizar material impresso, o evento pensou numa forma diferente de distribuir informativos, folders e etc, disponibilizando de maneira digital!


Isso mesmo!! Estão vendo esse aparelhinho na foto a cima que mais parece um controle de alarme de carro, pois então, com esse aparelhinho era possível obter informações do stand visitado, bastando pra isso aportá-lo para o terminal preso na parede do stand. Essas informações eram enviadas para o seu e-mail (aquele usado para se cadastrar no evento).

Tudo muito bom, tudo muito bem, mas cadê as palestras?

Pois bem, a primeira palestra que assisti foi sobre Segurança de cartões de modalidades de fraudes: desafios e propostas de solução.
Muito bacana conhecer os antigos métodos de fraudes de cartões, a evolução dessas técnicas e as metodologias de segurança implementadas pela ABECS (Associação Brasileira das Empresas de Cartão de crédito e Serviços).
Site do projeto: www.abecs.org.br

Palestrante: Willian Okuhara Caprino

Cerimônia de abertura.

A cerimônia de abertura reuniu organizadores do evento, representantes do Governo e renomados incentivadores do Software Livre.

Voltando as palestras…

Fui assistir F13-CN: Gestão de Segurança de Conexões SSH, aliás ótima palestra, tava tão cheio que tive que sentar no chão.

Palestrante: Anahuac de Paula Gil

A idéia do F13-CN é atuar como um “proxy” SSH, implementando diversos tipos de controle sobre os acessos que os técnicos podem fazer nos servidores de uma empresa, garantindo segunça aos administrador da rede.
Foi apresentada a versão mais recente e as correções bugs implementadas, como por exemplo o armazenamento de arquivos com senha em texto plano, o acesso por ip (agora acessado por label), algumas correções no manual e alguns outros. Citei essas pois foram as que o amigo Laercio Mota – @laerciomasala (que está aqui comigo no Latinoware) reportou para o projeto. Grande contribuição para o projeto.
Site do projeto: http://f13-cn.f13.com.br

E por fim, assisti a palestra sobre FOG – No controle da Clonagem.

Palestrante: Duda Nogueira

Solução para criação de imagens de SO semelhante ao clonezilla, apresentando mais recursos e ferramentas para o manuseio de sistemas Linux e Windows.
Site do projeto: http://dudanogueira.com.br

O que não pude ver mas já fiquei sabendo que foi muito bom:
OpenStreetMap – http://www.latinoware.org/en/node/201
LibreOffice – http://www.latinoware.org/en/node/199

Fico por aqui, o segundo dia promete!! 😉

Fonte:
http://www.latinoware.org/en/node/203
http://www.latinoware.org/en/node/192

Latinoware 2011 – Parte 2
Latinoware 2011 – Parte 3

Erro no “apt-get update”

Essa é mais uma daquelas histórias em que a simples manutenção vira um problemão.

Fui efetuar a configuração de um serviço num firewall (Debian “lenny”) que não mexia a muitos meses e ao executar um apt-get update recebi algumas mensagens de erro:

Reading Package Lists… Error!
E: Problem with MergeList /var/lib/apt/lists/ftp.pt.debian.org_debian_dists_stable_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.”

Depois de muito bater cabeça consegui uma solução seguindo os seguintes passos:

# fuser -vvv /var/lib/dpkg/lock
# sudo rm /var/lib/apt/lists/lock
# cp -arf /var/lib/dpkg /var/lib/dpkg.backup
# cp /var/lib/dpkg/status-old /var/lib/dpkg/status
# cp /var/lib/dpkg/available-old /var/lib/dpkg/available
# rm -rf /var/lib/dpkg/updates/*
# rm -rf /var/lib/apt/lists
# rm /var/cache/apt/*.bin
# mkdir /var/lib/apt/lists
# mkdir /var/lib/apt/lists/partial
# LANG=C;sudo apt-get clean
# LANG=C;sudo apt-get autoclean
# LANG=C;sudo apt-get update

E finalmente problema resolvido e pude prosseguir com meu trabalho! 🙂
Mas como sempre aprendemos com os erros, vou listar outros erros e soluções para o apt-get.

Erro:
W: You may want to run apt-get update to correct these missing files
E: Couldn’t find package penguineyes

Solução:
Rodar o apt-get update depois da sua última alteração no arquivo /etc/apt/sources.list

Erro:
E: Could not open lock file /var/lib/dpkg/lock – open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Solução:
Você não tem permissão root, ou seja, está acessando como usuário normal.

Erro:
E: Dynamic MMap ran out of room
Solução:
Adicione a linha seguinte ao /etc/apt/apt.conf:
APT::Cache-Limit 10000000;

Fonte:
https://help.ubuntu.com/community/PackageManagerTroubleshootingProcedure
http://www.debian.org/doc/manuals/apt-howto/ch-erros.pt-br.html

Abraços. 😀

Problemas na instalação do driver da NVIDIA

Esses dias passei alguns “perrengues” para configurar uma GeForce 8600M GT numa máquina com OpenSuse. Mas como sou brasileira e não desisto nunca, consegui resolver e agora vou compartilhar um pouquinho com vocês. 😉

Primeiro tentei configurar manualmente, baixando o driver no site da NVIDIA e executando mas o problema persistia, nada de conseguir definir a resolução que eu queria e os recursos de tela estendida.

Depois recorri ao YAST, adicionei o repositório, instalei os drivers referentes a minha para e… nada, a mesma coisa acontecia.

Então após uma boa pesquisa na internet e leitura dos logs do meu sistema percebi que o problema estava no módulo nouveau, segue uma breve explicação encontrada para solucionar esse impasse:


To prevent the proprietary NVIDIA driver from conflicting with the default nouveau driver, prevent the nouveau module from getting loaded at boot by blacklisting it:

# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf

This change might need to be undone if you want to use the nouveau driver again, e.g. after upgrading to openSUSE 11.4 when nouveau might have become more mature and usuable (this doesn’t apply for new installations of openSUSE 11.4).

Depois disso foi só correr para o abraço!! Tudo funcionado… pode mandar o próximo!! hehe

Fonte:
http://en.opensuse.org/SDB:NVIDIA_the_hard_way

Amizade+Trabalho+Diversão = Gmigos!!!

Uma galera show de bola!
Pessoas maravilhosas, profissionais de primeira linha e um grupo totalmente família!!

Esse eu recomendo!!

Acessem: www.gmigos.com.br

Abraços. 😀