Arquivo de agosto \30\+00:00 2011

Armazenamento online gratuito MediaFire

O MediaFire provou ser um sistema de compartilhamento de arquivos online excelente, já que além disponibilizar downloads sem tempo de espera e velocidade reduzida o MediaFire disponibiliza 200 MB para armazenamento gratuito.

Recomendo o MediaFire.

Deixe um comentário

Conexão com o banco de dados

Como citei na postagem anterior nesta postagem vamos dar continuidade à agenda de contatos elaborando o banco de dados e criando uma conexão com o banco de dados, na postagem anterior mostrei através de um vídeo como montar o formulário principal do sistema.

Nesta postagem vou passar um código SQL que servirá como base para o nosso banco de dados, e depois vou postar mais um vídeo demonstrando como criar outro formulário que vamos utilizar para criar o banco de dados em nossa aplicação. Por fim vou passar os códigos principais para a conexão com o banco de dados.

CREATE TABLE [contatos] (
[id] INTEGER  NOT NULL PRIMARY KEY,
[nome] VARCHAR(255)  NULL,
[numero] VARCHAR(15)  NULL
);

INSERT INTO contatos([nome],[numero]) VALUES ("João","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Joaquim","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Marcelo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Ana Paula","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Carla","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Isac","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Luiz","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Alexander","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Pablo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Paula","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Thais","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Marcio","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Keli","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("José","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Ivaldo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Thiago","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Katia","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Adriana","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Milena","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Gisele","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Leonardo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Francisco","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Emanoel","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Sicera","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Marcelo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Lavinea","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Nelson","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Aline","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Clodoaldo","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Edogar","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Nina","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Janaina","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Jacó","(11) 9999-9999");
INSERT INTO contatos([nome],[numero]) VALUES ("Mariele","(11) 9999-9999");

Salve o código SQL como db.sql. Veja no vídeo abaixo como criar um recurso para incluir o código dentro do executável e depois veja o processo para montar uma novo formulário que irá cria o banco de dados.

Como você pode ter percebi no vídeo eu coloquei uma barra de processo no novo formulário, com ela temos um efeito de processo para cada execução de instrução SQL.

Uma vez preparado o ambiente vamos preparar o sistema para usar o banco de dados, para isso é necessário modificar o arquivo do projeto para que o compilador habilite os recursos para podermos usar o QSqlDatabase.

Infelizmente o próximo vídeo passou de 15 minutos com isso o youtube não aceitou o vídeo, mas eu coloquei ele no MediaFire, segue link abaixo.

http://www.mediafire.com/?jrpvwqgw7l3wd66

Na próxima postagem vou mostrar como usar o formulário criado neste artigo para gerar o banco de dados com o efeito da barra de processo.

Deixe um comentário

Desenhando a agenda de contatos

Nesta postagem resolvi criar um vídeo demonstrando como desenhar o layout do formulário da agenda e também no final de vídeo mostra como tratar o evento de Clique de um botão e o evento QCloseEvent que é acionado quando o usuário tenta fechar a janela.

Na próxima postagem vou criar o banco de dados e estabelecer a conexão com a aplicação.

Deixe um comentário

Google Blog Search

Se você é um viciado em blog’s como eu e precisa sempre está bem informado ou simplesmente acha que procurar em blog’s o resultado é melhor, a google pensou em nós e criou um filtro no site de busca mais popular da internet conhecido como Google Blog Search, na minha opinião ainda não funciona 100% já que muitos resultados nas pesquisas são referentes a portais, mas é uma excelente ferramenta principalmente para saber qual é a popularidade do nosso blog.

http://www.google.com.br/blogsearch

Deixe um comentário

Projeto em Qt

Pensando em como criar um simples projeto em Qt/C++ que também fosse interessante o suficiente para ter um bom aproveitamento resolvi que na serie de artigos a seguir vou mostrar o processo de desenvolvimento de uma agenda de contatos, muito simples por sinal, porque uma agenda? Você deve estar se perguntando, a resposta é simples, porque o desenvolvimento de uma agenda de contatos não requer muito tempo, e fica mais fácil para explicar o funcionamento do código.

No caso da agenda vamos usar dois recursos da biblioteca Qt, a GUI e a biblioteca de acesso aos bancos de dados (como MySQL, MSSQL, SQLite, Oracle, etc…), no caso vou utilizar SQLite3 já que com ele o usuário final não vai ter que instalar um programa pesado em sua maquina como o MySQL ou PostgreSQL.
Os principais recursos gráficos que vamos utilizar assim como em outras linguagens são QLabel (rotulo), QPushButton (botão), QTableView (tabela), QLineEdit (caixa de texto), QProgressBar (barra de processo). Além deles vamos usar outros componentes de uso secundário como QHBoxLayout.

Antes de criamos nosso projeto é necessário baixar a IDE do Qt juntamente com seu SDK (Software Kit Development) no caso eu estou falando do Qt SDK que para facilitar a nossa vida ele já vem com tudo o que a gente precisa para trabalhar. O arquivo do Qt SDK version 1.1.2 que contem o Qt 4.7 tem um pouca de 1.7 GB de tamanho, mas não se assuste com o tamanho porque ele vem com as bibliotecas, Qt Creator, compilador g++ pelo MinGW, recursos para teste em sistemas de celulares Nokia, debug, etc…

http://qt.nokia.com/products/
http://qt.nokia.com/downloads

O Qt SDK tem varias licenças, para quem está iniciando eu sugiro a licença LGPL. Feito o download e instalado vamos iniciar o projeto, na tela inicial do Qt Creator clique em “Create Project…”.

Com a janela “New Project” aberta clique em “Qt Widget Project” e depois selecione “Qt GUI Application”, depois clique no botão “Choose…”.

Agora digite o nome do projeto e selecione o diretório em que deseja guardá-lo.

Clique em “Next” e depois clique novamente em “Next”, agora selecione no campo “Base class:” QDialog e no campo “Class name:” digite Agenda, depois clique em “Next” e clique em “Finish” para finalizar o assistente.

Agora deve ter aparecido o editor de código com o seguinte código já criado.

No explorador de projeto localizado no lado esquerdo da janela abra “Forms” e de um duplo clique em “agenda.ui”. Com isso você vai abrir o editor visual de formulários.

Na próxima postagem vou colocar o componentes do formulário agenda.

Deixe um comentário

Ambiente Qt

O Qt é uma biblioteca GUI (Grafic User Interface) para C++ multiplataforma criado pela empresa norueguesa Trolltech, hoje distribuído livremente pela Nokia. O Qt é amplamente utilizado no ambiente desktop livre KDE, mas também é usado na plataforma de dispositivos moveis da Nokia e Maemo.
Além da biblioteca gráfica, hoje o Qt tem um largo conjunto de bibliotecas de um padrão de qualidade excelente, o Qt da ao programador acesso a banco de dados, interface network, áudio, animações 2D, animações 3D (normalmente é melhor usar esse recurso integrando com outras bibliotecas como OpenGL), etc… Mas o que mais me atraio no Qt foi sua IDE desenvolvida pela Nokia o Qt Creator.

Assim como outras IDE’s consagradas como o Visual Studio e o NetBeans, o Qt Creator da à possibilidade do usuário criar rapidamente aplicativos profissionais nos poupando de digitar uma grande quantidade de código, já que ele possuí um sistema de autocompletar integrado que analisa os códigos de todas as bibliotecas utilizadas pelo programador retornando de forma eficiente todas as possibilidades de uso do código usando o padrão para chamar a função CTRL+SPACE, o que me chamou a atenção, é algo que sempre dificultou um pouco no desenvolvimento de aplicativos em C++ orientado a objetos é o uso de ponteiros, no caso para acessar um método de um objeto em C++ usamos janela.mostra(); e quando usamos ponteiros usamos janela->mostra(); o que nos obriga a dobrar a atenção já que em outras linguagens não há essa diferença.

Outro recurso que eu gosto é o editor visual de diálogos, no primeiro contado com o Qt Creator eu pensei que o editor visual de diálogos era parecido com o Glade para GTK, mas mostrou ser superior em todos os aspectos, uma comparação que mostra o nível de diferença é que no caso de Glade quando você terminar de criar o formulário você tem duas opções, a primeira é salvar em um arquivo no formato XML e integrá-lo ao seu código usando a biblioteca glade.h e a segunda é usar um assistente que gera um código C++ para você pode modificá-lo posteriormente. No caso do Qt Creator o formulário e o código são separados até o momento da compilação em que o Qt Creator automaticamente monta o código para compilá-lo corretamente.

No site da Nokia há uma vasta documentação (em inglês) sobre a biblioteca Qt muito organizada e também a um fórum em que os programadores que utilização o Qt compartilham suas duvidas e experiências.
Na próxima postagem vou iniciar um projeto usando o Qt Creator um pouco voltado para o desenvolvimento da plataforma Windows, mas o mesmo projeto pode ser compilado em outras plataformas sem modificar o código. O que há de diferente no desenvolvimento no Windows é a questão de como configurar o ícone e informações do aplicativo, o que não existe nos ambientes baseados no Unix.

Deixe um comentário

Pensando em c++

Esses últimos dias eu estive deixando o blog meio que de lado graças ao meu excesso de compromissos, no caso estou em um projeto para desenvolver um sistema de ponto de venda usando Java 7 (eu utilizei o NetBeans como IDE), o que acontece que o meu prazo estava chegando no fim e eu tive que agilizar as coisas. Mas no final das contas me deparei com aquele famoso problema de segurança no desenvolvimento do software, cá entre nós, o Java é uma linguagem maravilhosa para o desenvolvimento, mas quando a questão é a segurança que o seu código de fonte, tudo bem. Compilamos no formato .class e depois compactamos no formato .jar, mas volta e meia sai uma nova versão de compilador para retornar o código de fonte, existe diversas alternativas de segurança de código cujo a mais comum a ser utilizada é um programa que renomeia as variáveis  e remove trechos de códigos inúteis, o que ajuda a diminuir consideravelmente o tamanho final do aplicativo, mas no final das contas ainda sim o programa pode ser descompilado e com paciência pode-se alterar os nomes e logo-marcas do software.

Pensando nesse problema antes de fechar o meu projeto do sistema de ponto de venda, resolvi mudar a estrutura dele e usar mais de uma linguagem multiplataforma, no caso utilizei o Java para fazer a base do sistema, usei o C++/Qt para fazer o sistema de segurança integrado com o Java, e usei o Python 3.2 para criar aquelas rotinas que toda hora tem que ser mudadas (isso ajuda a atualizar rapidamente variáveis monetárias, ex: valor de imposto).

Ao fechar o sistema percebi que não seria uma tarefa fácil criar o instalador, já que havia muitas dependências, pesquisando na internet uma maneira mais eficiente de fazer o instalador percebi que a único de jeito de garantir que o sistema seria integro era fazer o instalador manualmente, antes de tormar essa conclusão notei que em vários fóruns (em inglês e português) existia muitas duvidas de com distribuir aplicações criadas com C++/Qt, graças a esse conteúdo escasso resolvi criar uma serie de artigos mostrando um passo a passo de como criar e distribuir uma aplicação em C++/Qt.

Na próxima postagem vou apresentar a melhor IDE para se trabalhar com Qt.

1 comentário