Archive for Códigos e Projetos

ConSys, PHP + GTk em ação!

Como muitas pessoas, por um tempo acreditei que a linguagem PHP só servia para aplicações WEB, mas me enganei.
Existe um projeto que deve ser considerado chamado PHP-GTk que une a linguagem de programação PHP à biblioteca GTk, o que possibilita a criação de aplicações desktop.
Esta idéia de tentar tornar o PHP mais presente em aplicações desktop é tão séria que chega a estar presente nos planos da nova versão do PHP, o PHP 6.

Como bom programador que sou fui correndo descobrir como que funcionava essa mistura PHP + GTk, e aproveitei a necessidade de um tio meu que é psiquiatra que precisava manter anotações dos seus pacientes como comportamento e remédios que haviam sido receitados.
Surgiu então o ConSys Beta, um pequeno projeto pessoal que fiz para aprender como utilizar PHP + GTk.
Aproveitei a experiência para aprender a modelar interfaces GTk com o aplicativo Glade, o que se tornou um aprendizado bastante útil.

O projeto ConSys Beta está com seu código todo comentado para facilitar o aprendizado de quem desejar aprender um pouco de PHP + GTk.
O projeto pode ser baixado pela URL www.frenetic.com.br/projetos/conSys/ConSys.zip e tem cerca de 18Mb comprimido em um arquivo Zip.

Screenshots do projeto:

Tela inicial do projeto

tela inicial - filtro de busca

tela inserir e editar usuario

tela de verificação das consultas do paciente

tela de inserção e edição de consulta

Algoritmo competitivo e sua complexidade computacional

Em 2010, na Universidade Católica de Pernambuco, desenvolvi um projeto junto com um amigo sobre a complexidade computacional do algoritmo de aprendizagem competitivo, para a cadeira de inteligência artificial ministrada pelo professor Francisco Madeiro.
O algoritmo, e sua complexidade computacional, foram inferidos do artigo Complexidade Computacional de um Algoritmo Competitivo Aplicado ao Projeto de Quantizadores Vetoriais, escrito pelo professor Madeiro em conjunto com outros mestres para a revista da Sociedade Brasileira de Redes Neurais.

A implementação foi feita usando a linguagem de programação Python, a biblioteca Python para manipulação de imagens PIL e a biblioteca de interface gráfica padrão Tkinter.

A aplicação recebe como dados de entrada:

  • k = A quantidade de números que irão compor cada vetor;
  • w = A quantidade de vetores de peso (W);
  • nAC = A quantidade de iterações de aprendizagem;
  • Fator de aprendizagem inicial;
  • Fator de aprendizagem final;
  • Um arquivo contendo os números que serão utilizados pelo algoritmo;

A aplicação gera/retorna:

  • Retorna os vetores de peso inicial;
  • Retorna os vetores de peso após as iterações de aprendizagem;
  • Retorna a quantidade de operações utilizadas no processo de aprendizagem;
  • Gera um arquivo chamado VetoresDeTreino.jpg que exibe todos os vetores de treino;
  • Gera um arquivo chamado VetoresDePesoAntes.jpg que exibe todos os vetores de peso antes do aprendizado;
  • Gera um arquivo chamado VetoresDePesoDepois.jpg que exibe todos os vetores de peso depois do aprendizado;

Note que as 3 imagens só serão geradas se a quantidade de números (k) que irão compor cada vetor for igual a 2 (duas dimensões).

O projeto pode ser baixado no link Algoritmo competitivo em Python ou através da URL:
www.frenetic.com.br/projetos/ia_python/IA_Python.zip

Screenshots do projeto:

Janela Principal

VetoresDeTreino.jpg

vetorPesoAntes.jpg

vetorPesoDepois.jpg

Recriando o clássico jogo Snakes utilizando JavaScript

Como dito no artigo Diário de um programador 04: Peitica, decidi recriar o clássico jogo Snakes, utilizando JavaScript.
O resultado, assim como o código fonte (todo comentado e mastigado) pode ser conferido na URL:
www.frenetic.com.br/projetos/snakes/snakes.html

Divirtam-se!