Quando trabalhamos com informática na área de desenvolvimento de software (como analista de sistemas e/ou programador) sempre acabamos por solucionar um problema de forma "não ortodoxa".

Em uma época bem recente, a pessoa que tomava conta das contas telefônicas da empresa instalou um programa de gerenciamento de faturas fornecido pela operadora de telefonia, porém o mesmo só trabalhava de forma local, ou seja, na máquina em que ele foi instalado.

E cada máquina era uma história: em uma o programa instalava e conseguia escrever corretamente na pasta "Arquivos de Programas" do Sistema Operacional, porém em outras ele instalava lá, mas quando o programa iria escrever alguma coisa (por exemplo, o próprio banco de dados) o Windows enviava para o "Virtual Store", um espelho do Arquivos de Programas transparente para o usuário que fica localizado na pasta do usuário logado e que fica os arquivos que não podem ser escritos no Arquivos de Programas original, por falta de permissões do usuário ou outras razões.

Isso nem era um problema grande, a dificuldade que o departamento tinha era que como o funcionamento era local, outras máquinas que também teriam a necessidade de instalar o programa ficariam com uma cópía própria da base cada, sem sincronia. Bem que a operadora de telefonia poderia fazer uma versão do programa em que o banco de dados ficava em uma máquina, mas que permita acesso remoto à base de dados. Até os programas feitos pelo DATASUS que utilizam o mecanismo de banco de dados (ou quase, mas eu explico o porquê) permitem que se instale um modo "servidor" em uma máquia e as outras operem em modo "cliente", sem uma cópia da base.

Eis que eu estava estudando o funcionamento de tal programa, descubro que o banco de dados é Firebird, abro-o no gerenciador IBExpert através de um servidor FB que tenho instalado na máquina e dou uma olhada na estrutura de tabelas, e até fizemos um programa de relatórios auxiliares que não tinha no software da operadora.

Hum... o BD é Firebird, o sistema NÃO pede para instalar uma versão do servidor, e nas pastas do programa descubro um arquivo GDS32.DLL com um tamanho grande, e dentro de um arquivo chamado CONFIG.SYS vejo que tem o caminho físico do banco de dados, chego a conclusão que o programa usa um servidor Firebird embarcado (e alguns arquivos de apoio do FB também se encontram na pasta do programa).

Pensei comigo: bem, se o programa usa um FB embarcado (cujo cliente e servidor se encontram em apenas 1 DLL, no caso a GDS32.DLL com mais de 2 MB de tamanho, sendo que só o cliente possui cerca de 500 kB), o que acontece se eu substituir essa DLL pelo GDS32 cliente puro e simples. mudar a string no arquivo de configuração para o formato <endereço IP>:<path físico do banco no servidor ou alias configurado no servidor>, e colocar o arquivo de banco de dados no servidor Firebird remoto que especifiquei nessa string?

BINGO! Ao acessar o programa de análise de faturas da operadora de telefonia com as novas configurações, ele acessa a base remota de qualquer estação que eu fizer essas alterações! O pessoal ficou contente, e essa solução passa a ser utilizada.

Note que essa solução NÃO é oficial, é meio que uma "gambiarra" que descobri para fazer o sisteminha funcionar em mais de uma máquina acessando a mesma base de dados em um servidor dedicado. Custava a operadora de telefonia ter pensado em uma solução semelhante na concepção do programa?

E um belo dia, a nova pessoa que tomará conta das faturas de telefone teve uma reunião com o gerente da conta na operadora, e o programa foi instalado, e eu mostrei a solução de como fazer o sistema utilizar uma conexão remota em vez da embarcada, e forneci uma cópia das instruções e o cliente do FB em um pendrive, e no dia seguinte esse gerente de contas me liga, diz que está em uma prefeitura de cidade próxima de onde trabalho e passa para um cara do TI dessa prefeitura, querendo uma "consultoria" da minha gambi! Expliquei ao capivara, porém no outro dia o gerente tem uma reunião no departamento, e ele me fala que não conseguiram fazer a solução funcionar.

Bem que eu poderia cobrar uma visita e fazer a coisa funcionar igual eu fiz no meu serviço, né!

E por que é um caso de utilização do "verdadeiro espírito hacker" que eu disse no título? Bem, fui fuçando o funcionamento do sistema e adaptei-o para utilizar de uma forma não planejada por quem idealizou o mesmo. Primeiro fui testando "só para ver se funciona", porém a solução foi adotada como oficial :).