Arquivo para Abril, 2008

Softwares livres para Banco de Dados

Olá pessoal. Neste fim de semana preparei uma pequena matéria de alguns softwares livres utilizados por quem trabalha com banco de dados. Geralmente estes softwares trabalham com diversos tipos de bancos de dados, livres ou não, e são multiplataforma. Alguns deles seguem o modelo de licença GPL e outros não, mas mesmo assim todos são softwares maduros e muito interessantes para quem trabalha com banco de dados. Esta é apenas uma pequena listagem contendo alguns softwares úteis para o dia a dia.

É importante dizer que não sou especialista nestas ferramentas e que faço uso somente de suas opões básicas. Para mais detalhes, por favor, procurem a documentação da ferramenta, o site do fabricante, etc.. Também é importante dizer que não me responsabilizo por qualquer uso destas ferramentas.

1. Weka

O Weka (Waikato Environment for Knowledge Analisys) é uma excelente ferramenta escrita em Java para mineração de dados. Ele contém um grande conjunto de algoritmos prontos para serem usados. Vale a pena destacar também a grande quantidade de recursos para a limpeza e tratamento de dados, que auxiliam muito o processo de ETL (Extract Transform Load). A figura abaixo apresenta a janela do Weka Knowledge Explorer sendo executada no Mac X, onde podemos perceber que várias abas são disponibilizadas para o tratamento dos dados a serem minerados.

Weka

Figura 1. Interface gráfica do Weka.

Link para o download do Weka: http://www.cs.waikato.ac.nz/~ml/weka/index.html

2. TreeMap

O TreeMap é um software que fez a geração de mapas de árvores (TreeMaps). Estes mapas são muito interessantes para a visualização de uma grande quantidade de dados hierárquicos, pois apresentam as informações baseados em retângulos coloridos de acordo com algum atributo das informações. Este tipo de visualização de informação permite uma mineração visual dos dados, tornando mais fácil a descoberta de conhecimento a respeito dos dados. A Figura 2 apresenta o TreeMap com os dados a respeito de uma votação americana. Notem que o estado da Califórnia é apresentado como o maior retângulo e na cor azul. Várias opções permitem customizar a aparência e a navegação dos dados.

TreeMap

Figura 2. Visualizando dados de uma votação americana com o TreeMap.

Link para o download do TreeMap: http://www.cs.umd.edu/hcil/treemap/demos/

3. Mangrove

O Mangrove é um software para Windows apenas que permite a geração e navegação de árvores de decisão. Estas árvores de decisão são úteis para a detecção de padrões e correlações nos atributos dos dados. Vale a pena dar uma navegada pela árvore gerada, e identificar quais são os padrões que os dados apresentam. A Figura 3 apresenta uma árvore de decisão gerada pelo Mangrove, a partir de dados referentes a informações de um zoológico. Além da geração da árvore de decisão, há também como customizar alguns parâmetro do algoritmo e aplicar níveis de Zoom na árvore gerada.

Mangrove 

Figura 3. Árvore de decisão gerada pelo Mangrove.

Link para o download do Mangrove: http://www.tetris1d.org/zigah/mangrove/

4. Mondrian

O Mondrian é um excelente servidor OLAP de código livre escrito em Java. Além de permitir a manipulação de cubos de dados através de um browser o Mondrian possui uma extensa API (Application Program Interface) para a manipulação dos seus objetos. Suporte a MDX, geração automática de gráficos e exportação em PDF e arquivo XLS são algumas das suas muitas funcionalidades.

A Figura 4 apresenta o browser FireFox navegando em um cubo montado no Mondrian. Este cubo de dados que aparece na Figura 4 é o mesmo cubo de dados de telefonia que foi apresentado aqui no iMasters por meio da série de  colunas onde expliquei como montar um cubo de dados no Analisys Services.

 Mondrian

Figura 4. Cubo de dados de Telefonia implementado no Mondrian.

Link para o download do Mondrian: http://mondrian.sourceforge.net/

5. DBDesigner

O DBDesigner é uma ferramenta de código livre que serve para a modelagem de dados, mais especificamente para a elaboração de diagramas MER (Modelo Entidade Relacionamento). Dentre as suas principais vantagens, podemos citar a fácil geração de código SQL do modelo criado, a separação dos modelos Físico e Lógico, a sua simples interface gráfica e a sua portabilidade. A Figura 5 mostra um modelo multidimensional desenhado no DBDesigner.

DBDesigner 

Figura 5. Modelo Multidimensional desenha no DBDesigner.

Link para o download do DBDesigner: http://www.fabforce.net/dbdesigner4/

6. SQLUniform

Recentemente, recebi um e-mail solicitando informações sobre uma ferramenta que fosse um front-end no Linux para a administração do SQL Server. Respondi que não conhecia nenhuma, mas o leitor do iMasters e Desenvolvedor Ian Raphael me sugeriu o SQLUniform, um administrador de mais de 20 tipos diferentes de bancos de dados desenvolvido em Java. Para acessar o SQL Server pelo Linux, o SQLUniform utiliza a biblioteca FreeDTS e também pode trabalhar com drivers ODBC ou JDBC.

O SQLUniform também permite a exportação e importação de dados CVS, dentre outras funcionalidades. A Figura 6 mostra o SQLUniform em ação sendo executado em na interface gráfica KDE do Linux e conectado a um servidor MySQL.

 SQLUniform

Figura 6. SQLUniform administrando uma base de dados do MySQL.

Link para o download do SQLUniform: http://www.sqluniform.com/

7. Pajek

O Pajek é um programa que permite criar, editar e manipular grafos (e não gráficos) de todos os tamanhos. Além disso, ele conta com alguns algoritmos e heurísticas implementadas para facilitar a descoberta de informações. Muito útil para quem trabalha com dados provenientes de redes de relacionamento, como o Orkut, e também com dados hierárquicos. A Figura 7 apresenta um grafo conectado gerado a partir de dados contidos em um arquivo texto.

Pajek

Figura 7. Grafo conectado gerado pelo Pajek.

Link para o download do Pajek: http://vlado.fmf.uni-lj.si/pub/networks/pajek/

8.  The R Project

O Software chamado ‘The R Project’, ou simplesmente R como é mais conhecido, é um analisador estatístico muito poderoso. Quem precisa trabalhar com dados científicos pode contar com uma ferramenta muito flexível e robusta, a ponto de, em alguns casos, poder substituir o famoso MatLab. Correlação multivariada e testes chi-quadrado são apenas algumas das análises que esta ferramenta para fazer. A Figura 8 apresenta algumas das janelas do R no Mac que podem ser utilizadas durante a manipulação de dados com o R.

The R Project

Figura 8. Algumas das janelas do R sendo executadas no Mac.

Link para o download do R: http://www.r-project.org/

9. DbGen

O DBGen é um gerador de dados para testes desenvolvido pelo Grupo de Base de Dados e Imagens do ICMC da USP. Ele permite a geração e análise de diversos tipos de dados utilizados para carregar uma base de dados de teste. A Figura 9 mostra a geração de alguns números aleatórios no DbGen.

DbGen 

Figura 9. Geração de dados aleatórios no DBGen.

Para fazer o download do DBGen, antes é necessário o cadastro no site do Grupo de Base de Dados e Imagens.

Link para o download do DBGen: http://gbdi.icmc.usp.br/downloads.php

10. Agata Report

Vários softwares permitem a geração de relatórios customizada pelo usuário. O Agata Report é um projeto de código livre nacional que permite, com uma grande variedade de recursos, a geração de relatórios e gráficos a partir de diferentes bases de dados. Para quem trabalha com o Crystal Reports e o Reporting Sercices, o Agata Report é ótima alternativa de baixo custo. A Figura 10 mostra uma janela de configuração de um relatório no Agata Report.

Agata Report 

Figura 10. Janela de configuração de relatórios do Agata Report.

Link para o download do Agata Report: http://www.agata.org.br/

11. iXEdit XML Editor

O iXEdit é um editor de XML desenvolvido em Java bem simples. Ele é útil para a manipulação de arquivos XML com muitas tags e propriedades, além de fornecer suporte para a verificação e validades frente a DTDs e Schemas. A Figura 11 mostra o iXEdit manipulando uma tag de um arquivo XML.

iXEdit XML Editor 

Figura 11. O editor de arquivos XML iXedit manipulando um arquivo XML.

Link para o download do iXEdit XML Editor: http://ixedit.sourceforge.net/

12. Lucene

O Lucene é um biblioteca escrita em Java que contém um mecanismo para se trabalhar com full-text search. De acordo com os desenvolvedores, esta biblioteca apresenta alto-desempenho e possui muitos recursos para a manipulação e pesquisa de diversos tipos de texto. Esta biblioteca deve ser utilizada nas aplicações desenvolvidas em Java para fornecer a funcionalidade de pesquisa full-text.

Link para o download do Lucene: http://lucene.apache.org/java/docs/features.html

Com estas ferramentas livres apresentadas neste post, o desenvolvedor ou DBA tem várias alternativas para tornar o seu trabalha do dia-a-dia mais fácil e produtivo. Vale lembrar que muitos outros tipos de ferramentas livres que auxiliam o trabalho de quem manipula banco de dados ainda existem e estão esperando para serem descobertas e utilizadas.

Por hoje é só pessoal, tenham todos uma maravilhosa semana.

“Porque tu, SENHOR, és a minha lâmpada; e o SENHOR ilumina as minhas trevas.” 2 Samuel 22:29

Deixe um comentário

Conversão de documentos para PDF – Offline

Continuando…

A três dias atras eu postei aqui uma ótima ferramenta Online de converão de documentos para .PDF. Agora apontarei uma ótima ferramenta de impressão de PDF para Windows 2k/XP/Vista Offline.

Como nas máquinas, pelo menos nas minhas, não quero “elefantes brancos” procuro ferramentas de qualidade de preferência gratuitas. Aqui temos uma!

about doPDF

Primeiro requisito está na licença, open-source ou freeware, depois leve e simples sem perder todas as características que necessito.

Para os utilizadores de outras ferramentas, um aspecto importante é a flexibilidade em determinados opções técnicas, no doPDF algumas opções estão ao dispor do utilizador, não muitas mas as mais usuais, como a disposição da folha, o tamanho da mesma, etc.

How Print

Licença: Freeware
Sistemas Operacionais: Windows Vista, XP, 2008/2003/2000 Server (32 and 64-bit)
Download: doPDF 6.0.258 [1.39MB]
Homepage: doPDF

Aquele abraço e que Jesus esteja no coração de vocês!

“Fazei todas as coisas sem murmurações nem contendas; Para que sejais irrepreensíveis e sinceros, filhos de Deus inculpáveis, no meio de uma geração corrompida e perversa, entre a qual resplandeceis como astros no mundo;” Filipenses 2:14,15

 

Deixe um comentário

Abrindo documento .docX .xlsX… No OpenOffice e MS Office antigos

Nesta nova versão do Microsoft Office 2007, não sei porque cargas d´agua, a Microsoft decidiu adicionar um “X” no final da extensão da família de produtos Office, ficando: Word com .docx , Powerpoint com .pptx ; Excel com .xlsx .

Por que isso foi feito? Provavelmente para dificultar compatibilidade com aplicações online de terceiros e para incorporar XML nos arquivos. Mas o desastroso resultado foi que computadores antigos, rodando Office 2003/XP/2000 ou OpenOffice não conseguem abrir esses arquivos.

Para resolver este pequeno problema, é só fazer o Download do Pacote de Compatibilidade do Windows, válido para quem utiliza MS Office. 
*Tomem nota que seu Office precisa ser original!

Para usuários do OpenOffice+Linux, faça o download do conversor no site:
ftp://ftp-mirror.internap.com/pub/www.getdeb.net/od/odf-converter_1.0.0-2%7Egetdeb1_i386.deb

e faça a instalação do pacote com o comando:
sudo dpkg -i odf-converter_1.0.0-2~getdeb1_i386.deb  #for i386 users

Aqueles que tem Office Pirata (com crack ou serial, não importa) ou aqueles que não tem Office instalado (Criem vergonha na cara e instalem o OpenOffice :D), você pode baixar o Visualizador de Documentos do Word e o Visualizador de Documentos do Powerpoint. Ainda não existe esta versão para o Excel.

Espero ter ajudado!

Um forte abraço e fiquem todos na presença de Jesus.

“Não endureçais agora a vossa cerviz, como vossos pais; dai a mão ao SENHOR, e vinde ao seu santuário que ele santificou para sempre, e servi ao SENHOR vosso Deus, para que o ardor da sua ira se desvie de vós.” 2 Crônicas 30:8

Deixe um comentário

Convertendo documentos para PDF – On line

Bem, olhando o título, alguns usuários do linux vão me dizer: -No linux isso é muito fácil, e gratuito.
E eu diria: -OK! Sorte a sua de poder conhecer essa maravilhosa tecnologia.

Mas para quem não utiliza nenhuma das distribuições linux ou não tem o privilégio de utilizar em sua estação de trabalho na empresa ou na faculdade, sabe a dificuldade que é converter um documento qualquer (Word, Excel, PowerPoint, etc…) ou até mesmo uma imagem para a extensão .pdf.

Para conseguir esse feitio seria necessário baixar algum programa crackeado da internet ou então baixar a suite OpenOffice, fazer a sua instalação. Sendo que ficaria restrito a sua máquina apenas.

Mas agora esta dificuldade chegou ao fim. A conversão pode ser feita sem muitos esforços com alguns cliques do mouse e não é necessário sequer fazer a instalação de qualquer programa ou aplicativo. E o melhor de tudo é que não importa em qual máquina ou lugar que você esteja, a conversão acontecerá facilmente.

O site http://www.freepdfconvert.com/ disponibiliza essa conversão para você de forma rápida, prática e gratuita, sem importar se você utiliza Linux, Windows, Mac, etc… e além disso, ele também faz o inverso, ou seja, converte seus arquivos pdf para formatos word, excel ou rtf.

Sua única necessidade é ter uma conexão ativa com a internet.

É isso ai, boas conversões para vocês.

Um grande abraço e fiquem com Deus.

“E riquezas e glória vêm de diante de ti, e tu dominas sobre tudo, e na tua mão há força e poder; e na tua mão está o engrandecer e o dar força a tudo.” 1 Crônicas 29:12

Deixe um comentário

Be Linux!

Imagine um lugar…

…onde tudo é possível, onde todos

podem VOAR!

          

Uma espetacular semana a todos!!!

Deixe um comentário

Linguagens de Programação

Essa vai para os programadores de plantão.

Fazendo umas pesquisas na internet em uma madrugada qualquer, eu encontrei uma relação bem bacana de algumas linguagens de programação e suas devidas classificações.

Para quem é novo nessa área, essa relação é muito interessante para encontrar um norte no meio de tantas linguagens e suas devida classificação.
Para quem é mais velho, vale aqui a seção “nolstalgia”.

Linguagens históricas: ALGOL – Assembly – B – BASIC – BCPL – Clipper – COBOL – CPL – Forth – Fortran – Icon – PL/I – Simula – Smalltalk – SNOBOL 4

Linguagens acadêmicas: Icon – Pascal – PORTUGOL – Prolog – Haskell – Lisp – Logo – OCaml

Linguagens proprietárias: ABAP – AWK – C# – Cω – COBOL – ColdFusion – Delphi – Eiffel – Logic Basic – SQL – Visual Basic

Linguagens não-proprietárias: Ada – C – C++ – Forth – Fortran – Lisp – Pascal – SmalltalkLinguagens livres: Euphoria – Icon – Java – JavaScript – Lua – MUMPS – Perl – PHP – PORTUGOL – Python – R – Ruby – Shell script – Tcl – UniconLinguagens esotéricas: Befunge – brainfuck – FALSE – Gammaplex – INTERCAL – L00P – Malbolge – PATH – SNUSP – Unlambda – Whitespace
Um grande abraço, fiquem com Jesus.

“E, se Cristo está em vós, o corpo, na verdade, está morto por causa do pecado, mas o espírito vive por causa da justiça.” Romanos 8:10

Deixe um comentário

Clustering em Casa

O volume e a complexidade das informações com as quais trabalhamos cresce assustadoramente rápido e, com isso, também aumenta a necessidade de desenvolver formas mais eficientes de processar essas informações. Muitas vezes o tempo de processamento de uma tarefa pode ser crucial para determinar sua viabilidade.

Em ambientes onde um maior poder de processamento é requisito freqüente, uma alternativa que tem se mostrado interessante por sua viabilidade financeira é o uso de clusters: agregados de computadores pelos quais o processamento de uma tarefa é distribuído, podendo-se então processar uma quantidade enorme de dados em muito menos tempo. Ultimamente esse tipo de solução tem se tornado cada vez mais acessível e viável, tanto à área corporativa quanto ao público geek. Uma vez que há bastante documentação disponível, nada impede você de fazer aqueles gabinetes empoeirados e empilhados no sótão sentirem-se úteis novamente.

Um cluster pode ser usado para fazer balanceamento de carga, por exemplo, um servidor Web. Neste tipo de cluster, um computador recebe as requisições de processos pelo usuário (uma busca na web) e os passa para os demais, que processam e devolvem o resultado. Isso é interessante porque aumenta a escalabilidade do servidor (pra tornar ele mais poderoso é só colocar mais máquinas) e o torna mais barato: você pode usar várias máquinas fracas e baratas ao invés de um servidor caro.

Outro uso é o de tolerância a falhas, por exemplo, em um banco de dados. Um PC faz o trabalho enquanto outro o monitora e fica fazendo um backup constante dos dados para que, caso esse primeiro por algum motivo pare de funcionar, o segundo assuma automaticamente até que o problema seja sanado.

Um terceiro uso para um cluster, e talvez o mais interessante a longo prazo, é o cluster de processamento paralelo: o Compute Cluster. Neste tipo de cluster o processamento é dividido em diversas frentes e processado paralelamente em diversos processadores. Todos os computadores do cluster trabalham em diferentes tarefas para completar um trabalho muito grande, como um trabalho em equipe.

Funciona mais ou menos assim: com o processamento paralelo, os nodes – como são conhecidos os computadores que integram o cluster – podem, cada um, executar diferentes frentes de uma tarefa independentemente comunicando-se uns com os outros conforme os processos requisitem. Uma reprodução de um vídeo, por exemplo, não é uma tarefa paralelizável, e então não seria adequado tentar processá-la com o uso de um cluster, pois o overhead para comunicação dos nodes poderia consumir mais recursos que o metódo normal. Já a renderização desse mesmo vídeo pode demorar muito menos em um cluster do que em uma estação de trabalho comum.

Você não deve esperar uma serventia imediata para esse compute cluster caseiro. É preciso de um pouco de estudo em aplicações paralelizáveis para usar propriamente a infra-estrutura paralelizável: a forma de programar e as bibliotecas (MPI, por exemplo) diferem um pouco da programação linear a que estamos habituados mas, com a atual tendência irrevogável a computadores multi-core, vai se tornar obrigatória e mais cedo ou mais tarde você teria de aprender isso. Caso você não queira aprender sobre todo o potencial da programação paralela, mesmo como um usuário comum existem utilidades para um cluster em sua vida.

Para os fãs de Blender (modelagem 3D) é possível criar um conjunto de computadores que renderizem conjuntamente os projetos, reduzindo o tempo de espera pelo resultado. A solução, usando DrQueue e o Blender, é de fácil instalação e permite que qualquer “mortal” produza um centro de renderização poderoso. Para usuários mais experientes, o Scilab (computação numérica) também é uma opção de fácil clusterização. Usando PVM aliada a programação própria do programa, um matemático conseguiria reduzir o tempo de análise de dados. Para ambas as idéias, existem diversos tutoriais de como preparar e utilizar o ambiente.

Na plataforma Windows, a Microsoft disponibiliza o Windows Compute Cluster Server (http://www.micorsoft.com/windowsserver2003/ccs/) mas somente na arquitetura x64. Com Linux, temos uma boa opção com o Oscar Cluster (http://oscar.openclustergroup.org/), que é uma coleção de scripts de instalação de diversos aplicativos que compõe a estrutura do cluster e que facilita imensamente sua instalação em Linux.

Hoje em dia há muita gente trabalhando com isso e, portanto, há muita documentação e implementações diferentes. Isso facilita bastante o acesso à informação para quem deseja começar a fazer isso por conta própria. Assim, para montar um cluster de máquinas velhas, tudo que você vai precisar é de alguns CPUs, um CD de instalação do Linux e um HUB. Em caso de interesse, tem gente trabalhando com isso em http://www.codeplex.com/LMSU. Divirta-se =)

Links:

Tutorial DrQueue+Blender = http://www.midstorm.org/~jalexandre/blog/2007/05/14/drqueue-blender-render-farm-para-mortais/

Tutorial Scilab = http://ats.cs.ut.ee/u/kt/hw/scilabpvm/

Por: Bruno Melo, Raul Kist, Daniele Santos, Henrique Baggio, Ivo Trivella (Equipe LMS)
Retirado de http://under-linux.org/8401-clustering-em-casa.html

 

Um forte abraço e um espetacular fim de semana.

“Porque o Senhor DEUS me ajuda, assim não me confundo; por isso pus o meu rosto como um seixo, porque sei que não serei envergonhado.” Isaías 50:7

Comentários (1)

Como adicionar novos repositórios de softwares no Ubuntu

O que são e para que servem os repositórios de softwares?
R: Os repositórios de software são, para muitas distribuições Linux, a melhor forma de distribuir aplicativos para as versões de seus sistemas. Pode-se entender como repositórios um local onde os aplicativos, bibliotecas e correlatos, necessários ao sistema estão a disposição dos usuários, ordenados e classificados de maneira a permitir que não haja esforço demasiado para a instalação dos aplicativos.
Apesar de haverem repositórios dos mais variados tipos para os sistemas, o usuário iniciante deve ter em mente que apenas os repositórios oficiais garantem a estabilidade do sistema, os não oficiais devem ser adicionados com cautela, pois podem induzir o usuário a atualizar e instalar softwares que podem modificar substancialmente a configuração original, sem muito alerta, gerando inclusive a incapacidade de opera-lo adequadamente.

E onde encontrar repositórios?
R.: Normalmente os repositórios são encontrados no próprio site do aplicativo ou software. Ou então no Google :)  

No Ubuntu, podemos adicionar ou gerenciar os respositórios de duas formas:

1. Através do menu: System–>Administratation–>Software Sources
ou
2. Editando o arquivo /etc/apt/sources.list

Explicando as 2 formas.

Na primeira você deve acessar o Software Sources seguindo o caminho:
System–>Administration–>Software Sources–>Third-party software–>Add

Coloque o nome do repositório a ser adicionado. Neste exemplo irei utilizar o repositório do Medibuntu
deb http://packages.medibuntu.org/ gutsy free non-free

Clique em Add, seu repositório será adicionado, e todo o conteúdo deste repositório estará na lista do synaptic. Note que após adicionar um novo repositório você precisa dar um reload no synaptic (ele tem um botão pra isso) para que o conteúdo do repositório seja exibido corretamente.

A segunda forma para adicionar um repositório seria um metodo mais manual, mas tão funcional quanto ao anterior.

Por segurança, vamos fazer um backup do arquivo sources.list antes de modifica-lo.
sudo cp -p /etc/apt/sources.list /etc/apt/sources.list_backup

Dando início então, execute o comando no terminal:
sudo gedit /etc/apt/sources.list

Ao abrir o arquivo, você deverá adicionar o repositório desejado depois da última linha do arquivo sources.list

Feche-o e execute os seguintes comando para atualização:
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
depois
sudo apt-get update

Prontinho, o novo repositório Mediubuntu está adicionado ao seu sistema.

Espero ter ajudado com esta dica. Qualquer dúvida ou problema, coloco-me a disposição para ajudar.

Fiquem com Deus e tenham um ótimo fim de semana.

“E disse a Jesus: Senhor, lembra-te de mim, quando entrares no teu reino. E disse-lhe Jesus: Em verdade te digo que hoje estarás comigo no Paraíso. Lucas 23:42,43

Deixe um comentário