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 3h14min7 de 19 de janeiro 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/