quarta-feira, 13 de outubro de 2021

Chave Naturalizada

Ao analisar um conjunto novo de tabelas, encontrei algo pouco usual: uma chave estrangeira que também é primária.

Esse mecanismo só pode representar uma relação 1:1 ou 1:0..1. Sim, seria possível colocar tudo numa só tabela, mas há motivos razoáveis para separar: controle de acesso para informações sensíveis, desempenho, e economia de espaço (no caso de uma relação 1:0..1) .

Imaginei que essa configuração tivesse um nome, mas não pude encontrar. Então, tive que inventar um: chave naturalizada.

Ela é naturalizada porque é estrangeira, mas é parte fundamental na tabela secundária por ser primária também.

Outras ideias que me ocorreram: 

  • chave imigrante - descartada porque dá ideia de algo dinâmico;
  • chave agente duplo - descartada porque dá a ideia de conflito ou traição;

Então, essa construção rara será doravante conhecida como chave naturalizada.

segunda-feira, 30 de agosto de 2021

Como a Oracle rouba seu tempo

Tradicionalmente, a Microsoft tem a pior fama no reino da informática. Mas eu acho injusta essa posição. Acho que a Oracle deveria ser a campeã.

Apesar do histórico de práticas anticompetitivas, os produtos da Microsoft são razoáveis. Eles funcionam bem a maior parte do tempo.

A Oracle, entretanto, parece ter forjado um modelo de negócios a partir de bugs e manuais mal-escritos (ou simplesmente errados).

Nenhum software rouba tanto o meu tempo como os da Oracle.

Vou dar um exemplo que tem me ocupado nos últimos meses: o OAM - Oracle Access Manager. Em teoria, é um produto excelente (no marketing, a Oracle não economiza). O dia-a-dia, entretanto, é infernal.

O primeiro sinal de que a vida vai ser difícil começa logo na instalação. É preciso rodar um patch para o instalador funcionar. Não, o instalador não  deve ter sido testado. E não é que eu tenha usado um sistema operacional obscuro: usei o Oracle Linux Server 8.4.

$ java -jar fmw_12.2.1.4.0_idm.jar \\
  -prereqConfigLoc \\
  /tmp/31190532/prereq_metadata/oracle.as.install.oid.prerequisite/prereq

Então, para configurar uma regra de autenticação, encontrei uma sequência inacreditável de erros:

  1. A sintaxe não é completamente descrita no manual;
  2. O exemplo dado na documentação está errado desde a versão  11.1.2.2.0 (Doc ID 1928071.1);
  3. Na versão 12.2.1.4, o parser tem bug, então é preciso desabilitar a verificação da sintaxe (Doc ID 2664614.1).

Nunca atribua à malícia o que pode ser adequadamente explicado pela burrice, diz a Navalha de Hanlon, mas eu, no meio da minha revolta e angústia por perder tanto tempo com esse tipo de erro, fico a pensar que é muito conveniente para vender suporte esse tipo de falha.

O que sugiro é que quem possa evite ao máximo essa empresa. Use Linux, use Postgresql. Não há motivo são para uma empresa entrar hoje na seara da Oracle.

sábado, 20 de março de 2021

Lições sobre Teletrabalho em 2020

Em 2020, minha casa virou um escritório e uma escola. Ela não estava preparada. Aos poucos fui adaptando, cometi alguns erros e achei algumas soluções. Abaixo, seguem as principais lições. 

1. A melhor rede usa cabos 

Wifi pode ser prático, mas não funciona bem com uso pesado de várias pessoas. Mesmo após segmentar a casa com redes em canais diferentes, a solução mais eficaz foi a de usar um Powerline. Além disso, só cabear a casa toda melhoraria a rede. 

2. Compre uma impressora laser com impressão duplex 

Eu fiquei dividido entre uma impressora laser com Wifi e uma com impressão duplex. Escolhi a que tem Wifi, mas a prática revelou que o duplex teria sido mais prático. De qualquer forma, é muito melhor que usar uma impressoa a jato de tinta. As impressoras da Brother são muito boas e funcionam com o Linux.

3. Memória, memória, memória 

Quando iniciei 2020, nenhuma máquina tinha mais que 4GB de RAM. Agora, as que estão em uso contínuo têm de 8GB a 12GB de RAM. O notebook mais antigo tem um processador Core 2 Duo e iniciou o ano com apenas 2GB de RAM. Adicionei mais 1GB e ele rodou o MS Teams muito bem durante o ano todo. Ele roda Ubuntu Mate e usa um SSD. Se fosse Windows com HD, não tenho certeza que teria o mesmo sucesso. Nenhum micro é muito novo (os principais têm um Core i3 540 e um Athlon II X2 270), mas com bastante memória eles funcionam perfeitamente bem apesar de já terem uma década. Os maiores consumidores de memória são os navegadores.

4. Como prolongar a vida de máquinas antigas

Minhas máquinas são antigas, mas servem às minhas necessidades muito bem. Para atingir um desempenho ótimo, elas precisaram de 3 coisas: memória, placas de vídeo, e drive SSD (ao menos para o Sistema Operacional). A placa de vídeo não precisa ser a mais moderna; pode ser a mais antiga disponível (exceto se a intenção for jogar). Um micro usa uma Geforce GT210 e outro usa uma Geforce GT710. Além disso, o SSD também não precisa ser muito grande, basta usá-lo apenas para o Sistema Operacional. Então, com cerca de R$650,00 (R$300,00 por uma placa de vídeo, R$200,00 por um SSD, e cerca de R$150,00 por um pente de 4GB de RAM) é possível transformar um micro antigo numa estação com bom desempenho. Com R$1.000,00 é possível comprar um micro novo, mas ele não vai ter o mesmo desempenho.

O reaproveitamento de máquinas com mais de 10 anos de uso mostrou como o desenvolvimento dos micros tem desacelerado. Em 2021 alguns micros clássicos estão completando 40 anos. Em 1981, muitas pessoas compravam micros com apenas 1KB ou 2KB de RAM. Em 1985, o Amiga 1000 foi lançado com 256KB de RAM. Atualmente, máquinas com 10 ou até 15 anos servem para a maior parte dos casos de uso doméstico.