Mostrando postagens com marcador Bug do Milênio. Mostrar todas as postagens
Mostrando postagens com marcador Bug do Milênio. Mostrar todas as postagens

sexta-feira, 6 de dezembro de 2019

BUG DO MILÊNIO — A HISTÓRIA SE REPETE (FINAL)


DAI-ME SERENIDADE PARA ACEITAR O QUE NÃO POSSO MUDAR; TENACIDADE PARA MUDAR O QUE POSSO E SORTE PARA EU NÃO FAZER MUITA MERDA.

Como dito na postagem anterior, faltam 19 anos para 2038, e isso é tempo mais que suficiente para adequar os dispositivos e evitar a versão revista e atualizada do bug do milênio. Demais disso, diferentemente das correções necessárias em 2000, a coisa é bem mais simples de resolver. No caso de sistemas bem escritos, basta programá-lo para uma nova versão, que utilize valores de 8 bytes para armazenar datas.

Transformar o tipo de datação de 32-bit para 64-bit é uma alternativa funcional, uma vez que se utiliza de datas mais elásticas — no caso, 292 bilhões de anos no futuro —, mas pode prejudicar a compatibilidade binária de softwares. Todavia, trocar sistemas para os que suportam a arquitetura de 64-bit (ou seja, descartar os de 32-bit) é algo que vem acontecendo há tempos, já que as versões de 64-bit são cada vez mais comuns, tanto em computadores pessoais quanto em servidores. É certo que muitos sistemas embarcados podem não ser substituídos até a data-limite, e alguns alguns arquivos codificados no formato 32-bit (como o ZIP) continuam sendo largamente utilizados, deixando o problema ali mesmo depois da vida útil dos computadores em si.

Existem outras maneiras de resolver a falha, entre elas a inclusão de armazenamento de datas em milissegundos ou microssegundos. Essa opção resulta em pelo menos 300.000 anos antes que os números inteiros cheguem a uma contagem negativa. A data limite de 2038 varia de acordo com o valor zero utilizado para iniciar a contagem de tempo. No Windows NT, que se utiliza de número inteiro de 64-bit, com nanossegundos como contagem e data inicial de 1 de janeiro de 1601, o problema deve aparecer apenas no ano de 2184. Já em computadores que iniciam seu ponto de partida zero em 1 de janeiro de 1980, os números inteiros devem se esgotar apenas em 2116, mesmo que usem inteiros de 32-bit. A Apple, entretanto, diz que só terá problemas semelhantes no ano de 29.940 — ou seja, tempo mais que suficiente para novas tecnologias darem conta do recado.

Para saber mais sobre o assunto, acesse a página do Project 2038 ou do The Year 2038 Bug (ambas em inglês), que contêm informações detalhadas, incluindo códigos que podem ser usados por desenvolvedores para resolver o problema. Mas é importante salientar que esse problema não é motivo para pânico, como aconteceu em 2000. Além de ser uma situação mais simples, o espaço de tempo para se implementar uma solução é ainda maior, suficiente, inclusive, para que surjam novas tecnologias que não tragam problemas para armazenamento e contagem de data.

quinta-feira, 5 de dezembro de 2019

BUG DO MILÊNIO — A HISTÓRIA SE REPETE (CONTINUAÇÃO)


UM EVENTO INIMAGINÁVEL EM UMA CENTENA DE ANOS TALVEZ SEJA INEVITÁVEL EM UM MILHÃO DE ANOS.

Anos-luz de evolução separam os chips Intel® Core™ atuais dos 286, 386 e 486 das décadas de 80/90. Raras vezes paramos para pensar nisso, mas, quando o fazemos, custa-nos acreditar que os monstruosos mainframes dos anos 1950 — que ocupavam prédios inteiros e tinham menos poder de processamento que uma calculadora de bolso teria dali a 30 anos — diminuíram de tamanho a ponto de ser levados no bolso, ao mesmo tempo em que seus recursos cresceram em progressão geométrica. 

O pool de sistemas usado pela NASA na missão Apollo 11 dispunha de 64 KB de RAM e processador com frequência de operação de 0,043 MHz. Isso corresponde a uma ínfima fração da capacidade de executar cálculos de qualquer smartphone xing-ling, e o que hoje é considerado "top de linha", "última geração", "estado da arte" e que tais não demora a se tornar "coisa do passado". E assim sucessivamente.

Existem processadores de diferentes tamanhos, capacidades e funcionalidades desenvolvidos, mas a maioria deles opera de forma parecida. Os primeiros modelos, de 16-bit, eram capazes de armazenar e acessar valores até 216 (equivalente a 65.539 números diferentes). As versões de 32-bit operam com 232 (= 4.294.967.295), mas é preciso tem em mente que essa capacidade é dividida de forma equânime para calcular o tempo e armazenar informações dos aplicativos do computador. Em outras palavras, cada uma das funções ocupa metade da capacidade do processador, razão pela qual um modelo baseado na arquitetura de 32-bit não é capaz de continuar contando o tempo depois que a contagem atinge 2.147.483.647 segundos . Já os processadores modernos, que equipam a maioria dos computadores atuais, são baseados no sistema de 64-bit, cujo limite é bem maior: 264 (18.446.744.073.709.551.616).

O bit (forma reduzida binary digit) é a menor unidade de informação que o processador é capaz de manipular, e pode representar apenas dois estados opostos — fechado/aberto, desligado/ligado, falso/verdadeiro, etc. , que, por convenção, são expressos pelos algarismos 0 e 1. Para economizar tempo e espaço, não vou descer a detalhes sobre esse assunto; quem quiser saber mais a respeito pode clicar aqui para acessar uma abordagem detalhada, mas em linguagem palatável.

Computadores fazem cálculos monstruosos usando o código binário, o que nos causa certa estranheza porque estamos habituados a usar a base decimal. Mas é possível escrever qualquer número inteiro usando a base binária, considerando que cada 1 ou 0 se refere a uma potência de 2 — o primeiro, a 20; o segundo, a 21, e assim por diante. O computador "vê" uma sequência de dígitos, multiplica cada potência de 2 (da esquerda para direita) por 0 ou 1 e chega a um número. A sequência 10, por exemplo, tem dois bits e equivale a 0x20 + 1x21. A sequência 111 tem três bits e equivale a 1x20 + 1x21 + 1x22. A sequência de 4 bits 1001 equivale ao número 9 (1x20 + 0x21 + 0x22 + 1x23), e assim por diante.

No que tange aos microchips (ou microprocessadores), os termos 32-bit e 64-bit se referem ao tamanho do registro — ou seja, do "mapa" onde o processador distribui os "endereços" dos dados de que precisa para operar. Como todos esses endereços apontam para a RAM — memória física do computador, onde tudo, do sistema operacional a um simples arquivo de texto, é carregado e processado —, CPUs de 32-bit, que só conseguem operar com 232 (ou 4.294.967.295 endereços diferentes), são incapazes de "enxergar" mais que 4 GB de RAM, independentemente da quantidade de memória fisicamente instalada na máquina

Chips de 64-bit operam com 264, sendo capazes de mapear mais de 17 bilhões de endereços na RAM e acessá-los de maneira mais rápida e eficiente. Vale lembrar, porém, que é o sistema operacional quem "diz ao computador como utilizar seus componentes", e um chip de 64-bit só exibirá todo seu poder de fogo se o sistema também for de 64-bit. Mas tenha em emente que um chip 64-bit suporta sistemas operacionais de 32-bit (embora não funcione em plena capacidade), mas chips 32-bit não suportam sistemas operacionais 64-bit; que apps de 64-bit só funcionarão se tanto o processador quanto o sistema forem de 64-bit, embora não haja problema algum em instalar aplicativos de 32-bit em máquinas com sistema operacional e processador 64-bit.

Observação: A Microsoft oferece versões de 64-bit do Windows desde a edição XP. Para saber se o seu sistema é de 32 ou 64-bits, dê um clique direito no botão Iniciar, clique em Sistema e, em Especificações do dispositivo, veja a resposta em Tipo de Sistema. Para obter informações adicionais sobre o processador e a configuração de hardware, baixe e instale o freeware CpuZ.

Voltando ao bug de 2038, desta vez o xis da questão é a capacidade limitada dos processadores de 32-bit de contar o tempo em segundos — um problema bem mais fácil de resolver que o do bug do milênio, como vermos mais adiante.

Considerando que computadores medem o tempo desde 1º de janeiro de 1970, às 3 horas, 14 minutos e 7 segundos de 19 de janeiro de 2038 eles chegarão ao limite de 2.147.483.647 segundos, e deverão parar de computar os segundos seguintes. Para continuar a contagem, os valores começarão a ser armazenados em uma contagem negativa, de -2.147.483.647 até zero, mas a maioria dos sistemas não conseguirá fazer isso e então simplesmente vai parar de funcionar ou, no melhor dos cenários, continuar funcionando, só que com a data incorreta.

Pare evitar que isso aconteça, a adequação dos dispositivos deverá ser feita até 2038. A maioria dos processadores comercializados atualmente é de 64-bit e o Windows dispõe de versões de 64-bit desde o início deste século. Muitos sistemas usados na operação de servidores (como o Unix) ainda são baseados na arquitetura de 32-bit, mas a lógica é que eles sejam substituídos nos próximos 19 anos. As máquinas que podem causar mais problemas são os chamados “sistemas embarcados”, que são usados em sistemas de transporte e outros aparelhos que devem ter longa durabilidade, como estabilizador de controle em carros, por exemplo. A principal preocupação deve ser com sistemas vitais para a infraestrutura, mas espera-se que os 19 anos que faltam sejam tempo suficiente para administradores e governantes se planejarem.

quarta-feira, 4 de dezembro de 2019

BUG DO MILÊNIO — A HISTÓRIA SE REPETE


NINGUÉM É VELHO DEMAIS PARA APRENDER NEM NOVO DEMAIS PARA ENSINAR.

Há exatos 20 anos, o mundo roía as unhas na expectativa da "virada do milênio", que supostamente enlouqueceria todos os computadores quando os relógios saltassem as 23h59 para 00h00 e os calendários, de 31/12/99 para 01/01/00, data que as máquinas interpretariam como 1º de janeiro de 1900.

Todo computador dispõe de um relógio interno e depende dele executar corretamente um sem-número de tarefas — como verificar se sua conta de telefone venceu, por exemplo, ou se está na hora de ligar a iluminação pública. Devido ao assim chamado "bug do milênio", os servidores das empresas de telefonia poderiam entender que os clientes estariam devendo 100 anos de serviço, o que provavelmente resultaria na suspensão da linha e na cobrança de multas e juros que eles não conseguiriam pagar nem que vivessem outros 100 anos. No caso das luzes, a cidade poderia ficar às escuras se o programa interpretasse que o dia seguinte ainda não havia chegado — e jamais chegaria, a menos que alguém lhe explicasse que 00 é maior que 99.

Lá pelos idos de 1950, quando os primeiros computadores foram criados, a quantidade de dados que os monstruosos mainframes eram capazes de adicionar caberia num prosaico disquete de 1,44 MB (tipo de mídia que só seria criada décadas depois), e escrever o ano com dois dígitos em vez de quatro representava uma economia colossal. Além disso, achava-se que até o ano 2000 os programas de então teriam sido aposentados, o que, de fato, aconteceu, mas pouca gente se deu conta de que os novos continuaram a registrar o ano com dois dígitos para manter compatibilidade com os antigos.

Noves fora algumas intercorrências pontuais, o bug do milênio foi muito peido e pouca bosta. Houve falhas em terminais de ônibus na Austrália, em equipamentos de medição de radiação no Japão e em alguns testes médicos na Inglaterra. Alguns sites da Web mostraram a data 1/1/19100. Mas isso não evitou que o pânico se espalhasse mundo afora nem que fossem gastos cerca de US$ 300 bilhões em medidas preventivas.

Em Brasília, montou-se uma “sala de situação” do setor elétrico para eventuais distúrbios no fornecimento de energia; o governo paulista criou um site para acompanhar os efeitos da “catástrofe” (havia preocupação em áreas-chave, como saúde, segurança pública, transportes, recursos hídricos e administração penitenciária) e a prefeitura da capital colocou 2700 funcionários da CET em standby no Réveillon, diante da possibilidade de panes em semáforos ou congestionamentos anormais. Quando os relógios deram meia-noite e nada de incomum aconteceu, os servidores foram desmobilizados e puderam curtir a virada do século, ainda que com algum atraso.

Como não há mal que sempre dure nem bem que nunca termine, em 2038 os processadores de 32-bit perderão a capacidade de contar o tempo. O busílis da questão (como eu havia adiantado nesta postagem de 2017) é a limitação da arquitetura de 32-bit, que atingirá seu ápice às 3 horas, 14 minutos e 5 segundos de 19 de março de 2038. Mais ou menos da mesma forma que se previa que acontecesse na virada do século, as máquinas não conseguirão diferenciar 2038 e 1970, o primeiro ano no qual todos os sistemas atuais passaram a medir o tempo.

Continua na postagem de amanhã.

quarta-feira, 12 de abril de 2017

VOCÊ SE LEMBRA DO BUG DO MILÊNIO? POIS EXISTE OUTRO A CAMINHO!

VIVA CADA DIA COMO SE FOSSE O ÚLTIMO. UMA HORA VOCÊ ACERTA…

Conforme o ano 2000 se aproximava e os réquiens dos arautos do apocalipse subiam de tom, fanáticos e teóricos da conspiração enchiam os bolsos, aproveitando-se dos desinformados que realmente acreditavam que a humanidade não veria o alvorecer do novo século ― ou milênio, conforme a versão, embora tanto um como o outro só começariam um ano depois, em 1º de janeiro de 2001.

Mas o mundo não acabou em 2000, nem em 2001, nem em 2012 (a despeito do apregoaram os adeptos da “Profecia Maia” durante todo aquele ano). O Brasil é que quase foi para o buraco neste começo de século ― graças a certo nordestino pobre e analfabeto, que conquistou a presidência, institucionalizou a corrupção e se fez suceder por uma rematada incompetente, mas isso também é outra história.

Passando ao mote desta postagem, os “veteranos” da computação pessoal devem estar lembrados do proverbial Bug do Milênio, que, à zero hora de 1º de janeiro de 2000, destamparia a versão digital da mitológica Caixa de Pandora. Para melhor entender essa história, é preciso ter em mente que, à luz das soluções de hardware atuais, os computadores daquela época eram “movidos a manivela” e os programas que eles rodavam, compatíveis com seus padrões. 

Apenas para que os leitores mais novos tenham uma ideia, o PC que eu usava na virada do século era um “poderoso” 80286 de 40 MHz com 2 MB de RAM e 40 de HD). Como os componentes de hardware eram caríssimos ― 1KB de memória custava cerca de US$ 100 ―, os programadores se viam obrigados a espremer seus códigos no menor espaço possível. Cada byte contava, e se armazenar datas no formato DD/MM/AA  2 bytes, não havia porque registrar o ano com 4 algarismos ― o ganho pode parecer pífio, mas num banco de dados de 1.000.000 de pessoas, por exemplo, a diferença é considerável). A questão é que, com a virada de 1999 para 2000, os sistemas associariam 00 a 1900.

O problema era conhecido desde meados da década de 50, mas foi solenemente ignorado até 1985, quando o livro Computers in Crisis, de Jerome e Marilyn Murray, alertou a todos do que estava por vir. Em 1996, com a reedição do livro, a merda bateu no ventilador: ainda que os sistemas mais modernos já fossem escritos de modo a não ser afetados pelo “bug”, a maioria das empresas, por economia ou comodidade, não se havia adaptado à nova realidade. Assim, temia-se que a passagem do ano estabelecesse o caos absoluto no mercado financeiro ― onde valores positivos se tornariam negativos e boletos seriam emitidos com um século de atraso, por exemplo ― na navegação aérea, nas usinas nucleares, nos sistemas de transmissão de energia e fornecimento de água, enfim, em toda sorte de atividades controladas por sistemas computacionais. 

A perspectiva aziaga levou falsos profetas e fanáticos religiosos a ganhar fortunas com a venda de kits de sobrevivência e forçou governos a montar comitês especiais de contingência e grupos internacionais de cooperação ― como o que foi criado pelo Banco mundial. Mas as consequências ficaram bem aquém das expectativas; além de alguns problemas pontuais ― como máquinas de cartão de crédito que pararam de processar pedidos, um reator nuclear japonês que teve o monitoramento de radiação comprometido e máquinas de tickets de ônibus que pararam de validar as transações na Austrália, por exemplo ―, nada muito mais preocupante foi observado.

Resumo da opera: Para alguns, o Bug do Milênio foi uma ameaça real; para outros, não passou de mera tempestade em copo d’água, até porque países como Itália e Coreia do Sul, que, ao contrário de dos EUA, não investiram quase nada em prevenção de danos, não registraram maiores problemas. Aliás, o serviço de apoio americano a pequenos comércios esperava receber milhares de pedidos de ajuda, mas contabilizou apenas 40 telefonemas na primeira semana de 2000, e nenhum deles relatou qualquer problema crítico.

Mas não há nada como o tempo para passar, e um novo bug ameaça os computadores com uma volta no tempo para 13 de dezembro de 1901, a ocorrer pontualmente às 03h14min08s de 19 de janeiro de 2038. Mas isso é assunto para uma próxima postagem.

Com Oficina da Net.

DE LISTA DE JANOT À LISTA DE FACHIN - E LULA LÁ

Era uma terça-feira como qualquer outra. Ou pelo menos era o que parecia até o final da tarde, quando se veio a saber que “Lista de Janot”, promovida a “Lista de Fachin”, elencava 9 ministros de Temer, 29 senadores, 42 deputados federais (entre eles, os presidentes da Câmara e do Senado), três governadores e um ministro do TCU, além de 29 outros políticos e autoridades que, a partir de agora, são oficialmente investigados pelo STF. E uma segunda lista, enviada a outros tribunais, exibe orgulhosamente os nomes dos ex-presidentes Lula, Dilma e FHC (o impichado Fernando Collor também é investigado, mas no STF, pois, embora se inclua na seleta confraria de ex-presidentes da Banânia, ele é senador por Alagoas e, portanto, tem direito a foro privilegiado).

Volto ao assunto quanto tiver acesso aos desdobramentos, até porque a “nova lista” apenas “oficializou o que já se sabia extraoficialmente”. Resta aguardar a suspensão do sigilo para, aí sim, saber quem é quem no Piauí e que parte da caca toca a cada um dos investigados ― que insistem em se esconder atrás de meias verdades, tipo "ser investigado não quer dizer que se é culpado" e juram de mãos postas e pés juntos que são inocentes, que todas as doações que receberam foram legais, que suas contas foram aprovadas pela Justiça Eleitoral e toda essa merda ― quase tão enojante quanto a história do “golpe”, que anta vermelha às vezes reconta num projeto de portunhol risível, noutras, num arremedo de francês de galinheiro de dar dó. Pior que isso, só mesmo ouvir o chefe da gangue se comparar a Cristo, dizer-se a alma viva mais honesta da galáxia e, fazendo qualquer coisa de palanque ― de caixote de fruta ao esquife da finada esposa ― berrar aos quatro ventos que ele e só ele é a salvação para o Brasil, embora esteja mais sujo que pau de galinheiro e não passe de um monte de lixo que há muito deveria ter sido enterrado em algum aterro sanitário.

A propósito: O molusco é citado por Edson Fachin em onze pedidos de inquérito. Onze! O primeiro e mais importante, relatado por 6 delatores, trata dos pagamentos de propina à ORCRIM comandada por ele ― Marcelo Odebrecht fala sobre Lula e seus gerentes, Antonio Palocci e Guido Mantega, em 15 termos de depoimento. O segundo trata dos pagamentos de propina por meio de palestras fraudulentas, da reforma do sítio em Atibaia e da compra do prédio do Instituto Lula. O terceiro trata dos 4 milhões de reais repassados ao Instituto Lula pelo departamento de propinas da Odebrecht. O quarto é aquele que envolve os pagamentos de propina para seu irmão, Frei Chico. O quinto trata de seu trabalho como lobista da Odebrecht junto a Dilma Rousseff ― no caso, ele tentou beneficiar a empreiteira na hidrelétrica de Jirau, mas fracassou porque a anta já havia favorecido uma concorrente. O sexto trata do pagamento de propina para a campanha de Fernando Haddad, em 2008 ― e não é um caso de caixa 2; a empreiteira repassou dinheiro a João Santana em troca de "medidas legislativas favoráveis aos interesses da companhia". O sétimo apura o assalto à Sete Brasil ― de acordo com Marcelo Odebrecht, Lula decidiu ratear a propina de 1% sobre o valor dos contratos entre os funcionários da estatal e o PT. O oitavo revela sua tentativa de obstruir a Lava-Jato aprovando a MP 703. O nono é uma beleza: os 3 milhões de reais pagos pelo departamento de propinas da Odebrecht à Carta Capital. O décimo trata do dinheiro que o departamento de propinas da Odebrecht repassou para seu filho caçula. Por último, mas não menos importante, o décimo-primeiro investiga se o molusco eneadáctilo traficou influência para favorecer a Odebrecht em Angola.

Confira minhas atualizações diárias sobre política em www.cenario-politico-tupiniquim.link.blog.br/