Monthly Archive for fevereiro de 2008

Mini tutorial de Máquina de Estado (State Machine) - Parte 2

No post anterior, falamos rapidamente sobre como funciona o um diagrama de Máquina de Estado. Neste post estarei dando um exemplo simples e uma implementação.

Imagine que você precise construir uma função que retire os espaços excedentes entre os nomes de uma pessoa de um cadastro.

Continue lendo ‘Mini tutorial de Máquina de Estado (State Machine) - Parte 2′

Mini tutorial de Máquina de Estado (State Machine) - Parte 1

rubik Máquina de Estado é uma técnica usada na eletrônica digital para a construção de circuitos digitais, inclusive a unidade de controle de um microprocessador é projetada seguindo este modelo. Como tenho formação de engenharia eletrônica aprendi esta técnica inclusive construindo circuitos com EPROM para a determinação de condições.

Mas o que isso tem a ver com programação?

Continue lendo ‘Mini tutorial de Máquina de Estado (State Machine) - Parte 1′

37 dicas para um HTML perfeito

Rapidinha!

Bulletproof HTML: 37 Steps to Perfect Markup é um ótimo artigo sobre dúvidas em HTML.

Recomendo a leitura. (dica meiobit-Ricardo Bicalho)

Algorítimos de ordenação. Qual o melhor? Como implementar?

Neste site http://cg.scs.carleton.ca/~morin/misc/sortalg/ você escolhe o algoritimo de ordenação e vê ele funcionando na prática. São applets Java, por isso deve-se ter o Java instalado. Muito interessante para entender como funciona e qual é o melhor algorítimo. Muito bom para estudos.

Dica do Douglas.

Listando as funções de uma DLL no Delphi

Tem um comando chamado TDUMP que lista todas as funções de uma DLL.

Digite no prompt do DOS

 C:\>TDUMP C:\MinhaDLL.DLL

ou faça como neste link:

 http://www.delphifaq.com/faq/delphi/windows_file_system/f409.shtml

Dica do Douglas.

Como determinar o maior saldo sem max(), min() e order by

Passaram-me um desafio, muito incomodado eu quebrei a cabeça até conseguir. O problema proposto exige conhecimento de SQL.

Temos uma relação (tabela) chamada conta_corrente, na qual temos 2 campos, codigo_da_conta_corrente e saldo.

Deve-se construir uma consulta em SQL que traga o codigo_da_conta_corrente de maior saldo da tabela conta_corrente, fácil certo? Errado… Devemos construir esta consulta sem o uso do max(), min() e order by do SQL.

Esta é a minha resposta:

Continue lendo ‘Como determinar o maior saldo sem max(), min() e order by’

Serialização de objetos em XML no Delphi

Em meu outro blog, a algum tempo coloquei a seguinte notícia:

“nTier Objects é um Framework que permite o desenvolvimento, totalmente orientado a objetos, de aplicações multicamadas.”

Esta é a proposta do nTier Objects, projeto desenvolvido por um amigão meu, Fernando Nomellini, e pelo Danilo Valente. A proposta é muito boa e aborda fortemente um assunto que normalmente tem as regras do O.O. quebradas nos Frameworks atuais, justamente na hora de distribuir a aplicação em várias camadas.

Atualmente o projeto já concluiu o ntoStream, uma classe base que permite a serialização de objetos. (dica do Nomellini)

Faz quase 2 anos que postei esta notícia, mas quase nada mudou de lá pra cá. Mas o ntoStream se mostra muito útil em várias aplicações e pode ser também objeto de estudo. Recomendo uma visita e vamos torcer para o projeto ter continuidade. Com ele é facilmente implementado uma forma de serializar um objeto em XML e também deserializar este devolta a objeto.

Alternativa ao ERWin - DBDesigner 4 - Grátis

Uma alternativa para o ERwin. O DBDesigner 4 é uma ferramenta CASE de modelagem de banco de dados (modelo entidade-relacionamento, MER), que desenha diagramas e já constroi a estrutura do banco. E o melhor, é gratuito.

Atualmente eu estudo ele como alternativa na empresa em que trabalho. Assim que começar a usá-lo, colocarei aqui se minha expectativa foi alcançada.

Dica do Anderson.

Propriedades de classe no Delphi

No Delphi para Win32 não é possível implementar propriedades de classe como no Delphi para .NET (pelo menos até a versão 2007, quem sabe em alguma futura). Mas existe um  jeito de emular a funcionalidade.

Para isso definimos uma variavel global com visibilidade apenas na unit. E implementamos uma propriedade em que seu acesso read/write sejam funções de classe. Nesta funções de classe teremos então o acesso e leitura escrita a variavel global. Complicado? Veja mais detalhes no artigo original.

Dica do Douglas.