Blogs técnicos

Prezados leitores,
Estou lançando hoje mais dois outros blogs, ambos com viés técnico. Um com ferramentas em Excel-VBA, e outro sobre Otimização Matemática.
O de Excel VBA (https://ferramentasexcelvba.wordpress.com/) deriva diretamente de anos de expertise no assunto. Conterá ferramentas plug & play em Excel, automatizando tarefas úteis. Ainda não tem muita coisa, mas a ideia é colocar toda semana algo novo.
SimuladorMinMax.png
O de otimização combinatória (https://analyticsgrainofsand.wordpress.com/) explica métodos matemáticos e disponibiliza uma série de aplicações sobre o assunto. É um dos assuntos mais difíceis da matemática e da computação. Pelo assunto ser muito específico e muito difícil, não há tantas pessoas no Brasil que se interessem tão a fundo. Por isso, a linguagem será o inglês.
simplex.png

O Forgotten Lore é um experimento. Sempre gostei de escrever, e, como em qualquer coisa na vida, tenho que treinar para melhorar. O meu estilo de escrita melhorou imensamente nos últimos meses, graças à prática.
Devido aos muitos feedbacks positivos, me sinto seguro a manter este trabalho e escrever sobre esses outros dois assuntos específicos e muito ricos.
Agradeço aos leitores pela companhia e feedbacks.
Arnaldo Gunzi

Killer application

excel-11-chart-quick-analysus

Hoje participei de uma reunião, com vários diretores da empresa discutindo cenários e fazendo contas de vários milhões de reais (numa grande empresa, é fácil esses cenários passarem de milhões). E qual o software que este pessoal utilizou? Matlab para cálculos numéricos multidimensionais? R, para modelagem estatística pesada? Java ou C++? É claro que não. Eles usaram o bom e velho Excel. E este fato se repete em TODOS os níveis de uma empresa, desde o analista que necessita de algum controle até o CEO.

É impressionante como um software pode ser tão onipresente.
O Excel tem duas características principais: 1 – É extremamente intuitivo para o ser humano trabalhar em duas dimensões, acrescentando a complexidade que quiser e modelando conforme a sua cabeça mandar; 2 – É um software extremamente poderoso, permitindo funções extremamente elaboradas e macros para automação de processos.


Mas o Excel não é a primeira planilha eletrônica da história. Esta honra cabe ao Visicalc, feita para o Apple II.
O Visicalc é o que podemos chamar de “Killer application”: a melhor aplicação, a melhor faixa do disco. Como não poderia deixar de ser num mundo onde a lei de Pareto impera, o killer app sozinho já justifica todo o investimento. Muitas empresas compraram o Apple II só por causa do Visicalc.

Dizem que o criador do Visicalc teve a inspiração numa aula. O professor fez uma série complicada de relações financeiras na lousa. Após fazer o modelo, ele mudou um parâmetro, e teve que recalcular a tabela inteira, com apagador e giz.

Sendo o criador do Visicalc mais um cientista da computação do que um empresário, ele não teve a ambição de dar passos muito maiores, dando espaço para concorrentes melhores surgirem pouco tempo depois: Lotus 1, 2, 3, e, é claro, o Excel.


Dica: em todos os trabalhos que você for entregar, descobrir qual o “killer app”. Não apenas fazer o trabalho que foi encomendado, mas procurar responder: Qual a principal função deste trabalho? Que gargalo ele vai resolver? O que o cliente (ou o chefe) quer de verdade?

Arnaldo Gunzi
Março 2015


Ideias técnicas com uma pitada de filosofia:

https://ideiasesquecidas.com/

Anos bissextos e bugs de Excel

Imagem

Como a definição de anos bissextos pode afetar uma planilha eletrônica?

Se você copiar uma planilha com datas em excel e colar no Mac, vai ver que as datas estarão erradas. As datas terão 4 anos e 1 um dia a mais do que na planilha original.

Por que isto ocorre?
A planilha eletrônica para Mac surgiu antes do Excel, pelos meados dos anos 80. Eles fixaram a data de 01/01/1904 como data base para cálculos.

O excel surgiu anos depois, e tomou a data de 01/01/1900 como data base para cálculos.
Portanto, não dá para fazer cálculos de datas antes desta data nas planilhas eletrônicas.

 

Mas por que esta diferença de 1900 x 1904?
A razão é que o cálculo de datas não é um assunto muito fácil.

A primeira regra é a que todo mundo conhece: acrescente um dia a mais em fevereiro (o dia 29), a cada 4 anos, gerando o famoso ano bissexto.
Mas tem uma segunda regra que se sobrepõe à primeira: quando o ano termina em 00 (por exemplo 1700, 1800, etc), ou seja, a cada 100 anos, este ano só é bissexto se for múltiplo de 400. Por exemplo: 1700, 1800 e 1900 não são bissextos, mas 2000 é. 2100, 2200 e 2300 não são bissextos. Mas 2400 não é bissexto.

Portanto, curiosamente 1900 é uma exceção à regra do bissexto a cada 4 anos. E não valia a pena tratar esta exceção nos computadores dos anos 80, que tinham pouca capacidade de memória, processamento, e mais importante, nem se sabia se planilhas iriam ser bem sucedidas ou não.

O Excel, que veio depois (ou seja, num cenário com mais capacidade computacional e mais certeza de que seria um sucesso comercial) conseguiu incorporar a regra mais complexa do ano 1900. Daí esta diferença, que remete à essência da arquitetura básica dos softwares. E também é por isso que o Excel não consegue reconhecer e corrigir automaticamente o sistema de datas de 1900 para 1904, porque esta é uma hipótese da própria construção do sistema.

Conclusão hipotética: talvez as planilha do Mac tenham problema no ano de 2100, quando deveria ser bissexto pela regra dos 4 anos, mas nao é pela regra dos 400 anos. Seria o “bug do século bissexto”, algo assim. Mas, provavelmente, em 2100 não vai ter nem Mac nem Pc e isto tudo vai ser só história…

Agora, por que esta regra maluca de não ter anos bissextos em 3 de 4 séculos?
A unidade de tempo “dia” refere-se a uma volta da Terra em torno de si mesma. A unidade de tempo “ano” refere-se a uma volta da Terra ao redor do Sol. E um ano é igual a 365,24… dias. O ano não é um múltiplo inteiro nem fracionário do dia.
Se um ano fosse exatamente 365,25 dias, a regra simples de 1 dia a mais a cada 4 anos resolveria tudo. Porque 3 anos teriam 365 dias, sobrando 3*0,25 dia = 0,75 dia, e fechando a conta no 4 ano, com 1 dia a mais (366 dias no ano) para anular o 4*0.25 dia que estariam faltando.
Mas na verdade não é bem assim. A natureza não liga nem um pouco para a convenção dos homens, para facilitar a conta. Um ano não é fracionário, e equivale a um pouco menos de 365,25 dias. Portanto colocar o ano bissexto corrige demais, é um erro que vai se acumulando. Para corrigir isso, existe a segunda regra de não ter anos bissextos nos anos terminados em 00 exceto os múltiplos de 400.

Para piorar, a história não acaba aí. Como o ano não é inteiro e nem fracionário do dia, daqui a alguns milênios nem essa segunda regra vai funcionar, o que pode fazer com que o calendário e as estações do ano dentro do calendário fiquem errados. Então, vai chegar uma hora que vão ter que parar tudo e refazer o calendário inteiro (como aconteceu com a elaboração do calendário Gregoriano).
Além disso, nada garante que outras alterações menores possam mudar o tempo que a Terra gire ao redor do Sol, tornando esta equação mais incerta ainda.

Mas a única coisa certa é que daqui a alguns milênios a internet e os computadores, se existirem, serão muito diferentes do que são hoje. E ninguém vai ler esta mensagem. Então, vou imprimir o texto, colocar numa garrafa e enterrar bem fundo, para que as gerações futuras saibam sobre o bug do Mac x Excel e que o calendário erra não porque a gente não sabe fazer conta, mas porque é impossível mesmo expressar um numero irracional por um número fracionário.

 

 

 

Arnaldo Gunzi