segunda-feira, 2 de maio de 2022

Unicomp

(Depois de muita procura finalmente achei em um backup a versão original da cronologia da Unicomp, enjoy!)


Uma cronologia computacional

Jorge Stolfi e Joao Carlos Setubal

(abril de 1996)


1966: Fundada a Universidade Estadual de Campinas.


1969: Criado o departamento de Ciencia da

      Computacao, do Instituto de Matematica, Estatistica e Ciencia da

      Computacao da Unicamp.


1971: Formada a primeira turma do curso de Bacharelado em

Ciencia da Computacao da Unicamp. Alguns alunos da turma afirmam terem

visto com os proprios olhos o computador IBM 1130, instalado

apenas 3 anos antes, em 1968.


1973: Inaugurado o Centro de Computaccao da Unicamp, que passa a

operar um PDP-10 da Digital Equipment Corporation, em time-sharing

atraves de terminais. Os cinco primeiros alunos da

terceira turma do curso de Bacharelado em

Ciencia da Computacao ganham o privilegio, apos a formatura,

de digitarem seus nomes num terminal do PDP-10.


1990: Criado o curso de Engenharia de Computacao.


1992: Criado o curso noturno de Bacharelado em Ciencia da Computacao.


marco de 1996: O Departamento de Ciencia da Computacao se

      separa do IMECC, tornando-se o Instituto de Computacao (IC).


marco de 1996: A Faculdade de

      Engenharia Eletrica muda o nome para Faculdade de Engenharia

      Eletrica e de Computacao (FEEC).


maio de 1996: O IMECC passa a se chamar

      Instituto de Matematica, Estatistica e Computacao Cientifica

      (IMECC).


junho de 1996: O Instituto de Quimica muda o nome para

      Instituto de Computacao Quimica (ICQ).


julho de 1996: A Faculdade de Engenharia

      Mecanica muda o nome para Faculdade de Engenharia Mecanica

      Computacional (FEMC).


agosto de 1996: O IFCH anuncia uma nova disciplina optativa,

      HG913A -- Topicos Especiais em Etica, Cibernetica, e

      Internetica.  Apesar do anuncio tardio, o numero de matriculas

      supera todas as expectativas; a tal ponto que as aulas tem que

      ser transferidas para o Ginasio de Esportes da Unicamp.

      Ignorando a chuva torrencial, uma multidao de 2500 alunos

      assiste de pe a aula inaugural da disciplina, sobre

      "Personalizacao de fontes e cores no Netscape 2.1 beta".

      

setembro de 1996: O Instituto de Biologia muda seu nome para

      Instituto de Biologia Computacional (IBC).

      

outubro de 1996: O Instituto de Filosofia e Ciencias Humanas passa

      a se chamar Instituto de Filosofia Computacional e Ciencias da

      Automacao Humana (IFCCAH).  

      

novembro de 1996: O Instituto de Computacao introduz tres novas carreiras:

      "acharelado em Computacao Orientada a Objetos (noturno)",

      "Engenharia de Vaporware (diurno)", e "Bacharelado em

      Configuracao do Sendmail (diurno)".


novembro de 1996: A Faculdade de Engenharia Civil muda o nome para

      Faculdade de Engenharia de Software Civil (FESC).


dezembro de 1996: Para surpresa geral, as Faculdades de Engenharia

      Agricola e Engenharia de Alimentos anunciam sua fusao, formando

      a Faculdade de Engenharia de Computacao Vegetariana (FECV),

      e criam um novo curso interdisciplinar,

      "Analise de Galhos e Pepinos de Sistemas".


dezembro de 1996: Gracas a uma doacao de R$ 5.000 da Microsoft, 

      complementada com R$ 2.495.000 da FAPESP e FUNCAMP, o Ginasio 

      de Esportes da Unicamp e recoberto, restaurado, e rebatizado

      "Ginasio William H. Gates de Esportes Computacionais".  Para

      inaugurar a obra, a Unicamp promove um match historico

      entre Windows 95 e MacOS (que infelizmente termina em 0 a 0,

      devido a falta de energia eletrica).

      

fevereiro de 1997: Assustada com a queda vertiginosa

      na procura de seus cursos no vestibular, a Faculdade de Ciencias

      Medicas se submete a uma re-estruturacao radical, criando

      os novos departamentos:


        * Anatomia de Sistemas

        * Anestesiologia por Computador

        * Cirurgia e Programacao de Computadores

        * Clinica Multimidica

        * Computacao Preventiva e Social

        * Dermatologia Distribuida

        * Enfermagem Homem-Maquina

        * Engenharia de Sistemas Digestivos

        * Farmacologia e Administracao Unix

        * Genetica Algoritmica

        * Informatica Ortopedica e Traumatologia de Software

        * Neurologia de Redes Neurais

        * Oftalmologia Grafica Computacional

        * Otocomputorrinocomputolaringocomputologia 

        * Pediatria e Downsizing

        * Psiquiatria e Inteligencia Artificial

        * Radiologia e Depuracao de Programas

        * Saude Publica Virtual

        

marco de 1997: Passa a ser oferecida a disciplina "Vida e 

      Obra de William H. Gates" no curso de Engenharia de Computacao, como

      optativa.  As 250 vagas sao imediatamente preenchidas, e 

      so a intervencao do exercito (a pedido do Reitor) 

      impede a destruicao completa do  predio da DAC

      pelos alunos que tiveram suas matriculas recusadas.

      

maio de 1997: O Instituto de Artes submete pedido

      de mudanca de nome para Instituto de Computacao Multimidia (ICM).  

      O pedido e frustrado, entretanto, por divergencias politicas

      internas, que levam os departamentos de Danca e Artes Plasticas

      a sair do IA e criar o Instituto de Computacao Coreografica e

      Processamento de Imagens Artisticas (ICCgPIA).  Os demais departamentos 

      do IA se reorganizam na Faculdade de Engenharia Artistica Computacional

      (FEAC).


junho de 1997: Apos um ano de acirradas disputas internas entre 

      "tradicionalistas" e "progressistas", que praticamente

      paralisaram as atividades da Faculdade de Ciencias Medicas, o CONSU

      conclui que a reconciliacao entre os dois campos e impossivel, e

      determina que a FCM seja dividida em duas unidades: a Faculdade

      de Ciencias Medicas Computacionais (FCMC), e a Faculdade de

      Ciencia da Computacao Medica (FCCM).

      

janeiro de 1998: No proprio ano de sua criacao, o curso de Bacharelado

      em Filosofia Windows do IFCCAH passa a frente dos demais cursos

      da Unicamp (incluindo Bacharelado em Computacao Orientada a

      Objetos, do IC, e Medicina Computacional, da FCMC) como

      recordista nas opcoes do vestibular.


fevereiro de 1998: O Instituto de Computacao tenta mudar seu

      nome para Instituto de Informatica e Ciencia da Computacao (IICC).

      O Reitor veta a mudanca, alegando possivel confusao 

      com o Instituto de Informatica e Computacao Cientifica

      (antigo Instituto de Fisica).

      

marco de 1998: Gracas a intenso lobby nos bastidores,

      e a uma habil campanha propagandistica na Internet, o Instituto

      de Computacao consegue mudar seu nome para Instituto de

      Informatica, Informatizacao, Computabilidade, e Computacao

      Computacional (IIICCC).


junho de 1998: Portaria do reitor determina que a Unicamp

      sera oficialmente chamada de Universidade Computacional

      de Campinas (Unicompcamp).

      

agosto de 1998: A disciplina "Vida e Obra de William

      H. Gates" torna-se obrigatoria no curso de Engenharia de

      Computacao Computacional, e optativa nas demais carreiras de

      ciencias exatas.


dezembro de 1998: A camara dos vereadores de Campinas aprova, por

      unanimidade, a mudanca do nome da cidade para Compinas. 

      Numa reuniao de emergencia, o CONSU da Unicompcamp 

      oficializa a mudanca da sigla da universidade para

      Unicomp.


marco de 1999: A disciplina "Calculo I" passa a ser ministrada

      pelo software "Calculus Teacher 1.0",

      recentemente introduzido pela Microsoft.


junho de 1999: Devido aos problemas encontrados no

      "Calculus Teacher 1.0" (principalmente, sua inabilidade

      em distinguir integral de derivada)

      a Unicomp decide substitui-lo pela versao do

      "Calculus Teacher 2.14 (beta)".

      

julho de 1999: Uma incompatibilidade nao-documentada entre 

      o pacote "Calculus Teacher 2.14 (beta)"e o screen saver da

      Microsoft acaba causando a reformatacao completa dos discos

      rigidos de todos os computadores da Unicomp.  Por um descuido

      dos administradores do IIICCC, os comandos de reformatacao

      propagaram-se via Internet, apagando tambem todos os arquivos da

      Universidade de Compina Grande (Paraiba), da Unisys Computers

      do Brasil S/A, do Uncle Remus Computer

      Camp for Kids (Florida), e das

      United Armed Forces of Compuchea (novo nome do Camboja).

      

julho de 1999: A Compucheia declara guerra ao Brasil,

      em represalia ao incidente do "Calculus Teacher 2.14 (beta)".

      

agosto de 1999: A Compucheia desiste da guerra

      contra o Brasil, pois a fita de backup que deveria conter os 

      planos para tal contingencia esta inutilizavel devido a defeito no software

      "Super Backup 99.7b for Windows".


fevereiro de 2000: A disciplina "Vida e Obra de William

      H. Gates" passa a ser obrigatoria para todos os ingressantes da

      Unicomp.


marco de 2000: Todas as disciplinas de calculo da Unicomp passam a

      ser ministradas exclusivamente pelo software "Calculus

      Teacher 3.4 for Windows".  Enquanto isso, o Instituto de

      Informatica Biologica Computacional (antigo Instituto de

      Biologia Computacional) passa a utilizar, em carater

      experimental, o software "Virtual Frog Dissector 2.0", da

      Apple, na disciplina "Laboratorio de Biologia I", em substituicao

      a sapos de verdade.


junho de 2000: A camara dos vereadores de Compinas aprova, por

      unanimidade, a mudanca do nome da cidade para Compunas.  

      

julho de 2000: O IIICCC submete ao CONSU mocao para mudar o nome

      da universidade de Unicomp para UnixComp; mas a tentativa

      fracassa, devido principalmente a oposicao das Engenharias (que

      preferiam ver o nome alterado para WinComp)

      

julho de 2000: Pesquisa informal entre docentes e alunos do

     Instituto de Informatica Biologica Computacional

     constata aprovacao unanime e entusiastica do software "Virtual

     Frog Dissector 2.0". Em vista disso, o Instituto decide

     informatizar todas as aulas de laboratorio, substituindo os seres

     vivos pelos softwares simuladores correspondentes.


julho de 2000: Seguindo o exemplo do IIBC, a Faculdade 

     Computacional de Medicina Informatizada Computacional (antiga

     Faculdade de Ciencias Medicas Computacionais) passa a utilizar

     exclusivamente o "Virtual MacPatient 6.0 Turbo" para o

     treinamento de residentes.  Para implementar essa decisao, a

     FCMIC assina convenio com o Centro de Computacao Computacional

     por Computador Computacional (antigo Centro de

     Computacao) e com a Apple Computer, visando substituir 300 leitos

     do HCC (Hospital

     Computacional das Clinicas) por uma rede de 300 estacoes 

       SuperUltraPowerMac 90000 rodando MacMacOS 11.0.



agosto de 2000: William H. Gates visita a Unicomp e profere

      palestra sobre biologia computacional no

      IIBC. O titulo da palestra e

      "Bounds for sorting by prefix reversals", e seu conteudo se torna

      materia obrigatoria no vestibular da Unicomp, com peso maior do que

      o da redacao.


agosto de 2000: A ACDCUNICOMP (Associacao Computacional

     dos Docentes Computacionais da Unicomp) registra que

     51% das disciplinas da Unicomp estao sendo ministradas pelo

     software "College Teacher 1.2". Professores demitidos fazem

     passeata pelo campus, mas sao vaiados pelos alunos, 

     espancados pela policia, e insultados na TV pelo Boris Casoy.


outubro de 2000: Em consequencia de um escandalo envolvendo corrupcao,

     perversao de menores, quebra de senhas, e variaveis nao

     inicializadas, o CONSU da Unicomp e dissolvido por interventor da

     Microsoft, que cria em seu lugar o COMPSU, COnselho

     Multi-Processual de Sistemas da Unicomp.  (A sigla inicialmente

     proposta pelo interventor, COMPSUN, foi rapidamente descartada

     devido a pressoes da IBM e outros fabricantes.)  Conforme os

     estatutos, o COMPSU sera formado por representantes dos

     principais sistemas operacionais e arquiteturas de hardware,

     eleitos democraticamente pelos membros discentes, docentes, e

     funcionais do parque computacional da Unicomp.


novembro de 2000: A camara dos vereadores de Compunas aprova, por

     unanimidade, a mudanca do nome da cidade para Computinas.

     Aproveitando o ensejo, o deputado Abi Chedid apresenta projeto de

     lei mudando o nome do Estado de Sao Paulo para Estado

     Computacional de Sao Paulo.


dezembro de 2000: A disciplina "Vida e Obra de William

     H. Gates" passa a ser materia eliminatoria no vestibular

     da Unicomp, substituindo as provas de Redacao, Matematica,

     e Fisica.


janeiro de 2001: Para cumprir com nova lei federal que obriga

     as Universidades a preencherem todas as vagas, independentemente

     da existencia de candidatos, a Unicomp adquire e matricula

     1300 copias do software "Virtual Student 1.5 for Windows".


fevereiro de 2001: A Unicomp torna-se a primeira universidade brasileira

     cuja administracao e realizada pelo software "College

     Administrator 0.9" da IBM.


marco de 2001: O software "College Professor 2.1" (com 

     "Object-Oriented Tenure Option") recebe o titulo de Doutor Honoris 

     Computatis Causa pela Unicomp.


marco de 2001: Empossado o novo reitor da Unicomp: trata-se da versao

     beta do software "College President for Windows". Comparecem a cerimonia

     os softwares "College Teacher", "College Administrator",

     e a pagina WWW do representante do corpo discente.


marco de 2001: Exemplares do filme e livro "2001, Uma

     odisseia no espaco" sao queimados na praca central da

     Unicomp em repudio ao tratamento computacionalmente incorreto

     dado pelo autor Arthur Clarke ao famoso computador HAL

     9000. Simula-se o enforcamento de Clarke e Stanley Kubrick no

     software "Virtual Torture 13.13".


abril de 2001: 5000 alunos fazem passeata diante do gabinete

     do Reitor, protestando contra o software "Virtual Student 1.5

     for Windows" --- especificamente, contra o sistema de protecao

     de acesso desse software, que impede a cola em provas por alunos

     que nao disponham da senha correta (vendida pela Microsoft).

     

maio de 2001: O DCCEC (Diretorio Computacional Central dos 

     Estudantes de Computacao) nega a alegacao da Microsoft de que a

     maioria dos alunos que participaram da passeata eram na verdade

     copias piratas do software "Virtual Student 1.5 for Windows".


junho de 2001: A camara dos vereadores de Computinas aprova, por

     unanimidade, a mudanca do nome da cidade para Computer City;

     porem a decisao e impugnada em processo movido pela cadeia de

     lojas americana de mesmo nome.

     

julho de 2001: O deputado Manoel Moreira propoe na Assembeia

     Legislativa de Sao Paulo mudanca do nome oficioso da entidade,

     de "Camara de Deputados" para "Camara com Computados".

     

agosto de 2001: Todos os 300 alunos em carne-e-osso da Unicomp tem sua

     matricula recusada pelo software "College Administrator".

     Investigacao da IBM determina que o problema foi causado por um

     defeito na instrucao "NOP" dos processadores billgatium da Intel,

     usados para o processamento da matricula.

     

agosto de 2001: O professor Sivasubramanian Chandrasegarampillai,

do departamento de Linguas e Codigos da Antiguidade da Unicomp,

ganha o premio Zeferino Computacional Vaz com sua tese de livre

docencia "Deciframento de um disquete de 5 1/4 polegadas gravado no

formato MSDOS 1.2".


setembro de 2001: Pressionada por todos os lados, a Intel eventualmente

     concorda em substituir os processadores billgatium

     defeituosos; mas avisa que segundo os 

     criterios da propria Intel, a matricula da Unicomp tem prioridade

     "17-m", significando que que os processadores nao serao

     substituidos antes de outubro de 2015.  Indignado, o Reitor decide

     ignorar o parecer do COMPSU (que tinha recomendado uma atitude

     mais passiva e conciliadora), e envia uma carta aberta a todos os

     alunos afetados, incitando-os, em termos nada ambiguos, a ter paciencia.

     

outubro de 2001: A camara dos vereadores de Computinas rejeita,

     por pequena margem de votos, proposta de mudanca do nome da cidade 

     para Computanas.

     

outubro de 2001: O governo federal apresenta novo plano 

     de reforma da previdencia, segundo o qual a aposentadoria exige

     35 anos de servico e 24 MBytes de memoria para os homens, ou 30

     anos e 16 Megabytes para as mulheres.  Por via das duvidas, os

     ultimos docentes em carne-e-osso da Unicomp se aposentam.  Em

     vista disso, o Reitor demite todas as funcionarias que preparam o

     cafe, substituindo-as por um servidor centralizado de applets

     Java.


dezembro de 2001: A Unicomp muda-se para um novo campus,

     inteiramente virtual, situado nas vizinhancas da pagina

     WWW da Cybercidade de Computinas, no sub-diretorio de Barao

     Geraldo (para quem chega pela infovia d.pedro.i@sp.br, 

     o mais simples e sair na altura do hyperlink para 

     <a HREF="http:Paulinia.html">Paulinia</a>).

     

dezembro de 2001: O Centro de Memoria RAM da Unicomp

finalmente publica a monumental obra "A hagiografia de William

H. Gates", em 1.11 Gigabytes (comprimidos).


24 dezembro de 2001: Um virus de computador, escrito

     por um aluno do JICOTUCO (Jardim de Infancia Computacional

     Tecnico da Universidade de Computinas), e por ele "plantado"

     dentro do applet Java "Merry.Christmas", apaga do Cyberspace a Faculdade

     de Informatizacao Computacional de Educacao Fisica

     Computacional (FICEFC.html).  Horrorizadas, as demais unidades da

     Unicomp assistem impotentes ao progresso inexoravel do virus

     pela rede Uninet, qu


bus error

core dumped

IIICCC.html: no such file or directory


terça-feira, 31 de março de 2020

Eis que no meio da quarentena eu faço 44 anos! A primeira coisa que notei foi 44 é palíndromo em base 10, mas estamos no ano de 2020, que é palíndromo em base 100.

A pergunta natural é: isso vai acontecer mais vezes? Fiz um scriptinho para descobrir, e se eu viver o suficiente vou passar seis vezes por essa situação. As duas primeiras foram 15 anos (em base 4), 24 anos (em base 7), 44 que é o atual em base 10, e depois ainda tem 52 (em base 5), 54 (em base 17), e 63 (em base 4).

Se alguém mais quiser computar, aqui tem o gist, e abaixo as minhas idades palíndromas!

https://gist.github.com/ricbit/6bb4b5c9dfbff036d374f0612b761d46

15 4 [3, 3] [7, 12, 7]
24 7 [3, 3] [40, 40]
44 10 [4, 4] [20, 20]
52 5 [2, 0, 2] [3, 6, 3]
54 17 [3, 3] [7, 7]
63 4 [3, 3, 3] [7, 15, 7]


domingo, 23 de junho de 2019

Dia desses o povo lá do grupo de MSX estava procurando por cartuchos com a linguagem Logo para MSX. Eu lembrava que uns 20 anos atrás eu tinha comprado um lote de cartuchos da Sharp, talvez tivesse um Hot-Logo lá. Mas não, só tinha Hot-Arte e Editor de Música.

Bem, mas sempre dá para regravar a EPROM né? O problema é que tanto o Hot-Arte quanto o Editorde Música tem 16kb, e o Hot-Logo tem 32kb. E isso é um problema, porque essa placa da Sharp não tem o pino do A14! Para economizar metal eles nem colocaram a trilha no conector, e sem A14 não tem como aumentar de 16kb para 32kb né? 



Mas com um pouco de criatividade a gente sempre dá um jeito haha. Olha só, o Hot-Logo é um cartucho em Assembly, e o Editor de Música é um cartucho em BASIC. Como a placa é a mesma para os dois, significa que tem que ter um sinal no conector que diferencia entre asm e basic.

Aí eu dei uma bizoiada no esquemático do Hotbit, e tcharam: o pino 1 do conector, que tem trilha no cartucho, é o /CS1; e esse sinal, pelo esquemático, é /CS1=(A15 AND /A14).

Agora fechou! O Logo só usa os addrs entre 4000 e BFFF. Nessa faixa, o /CS1 vai ser 0 de 4000 a 7FFF, e 1 de 8000 a BFFF, que é exatamente a mesma coisa que o A14! Então é só puxar o /CS1 para o A14 da eprom e pronto. Funcionou direitinho!


Para quem quiser um totorial com as fotos da modificação, coloquei aqui:
https://sites.google.com/site/ricbitmsx/hardware-development/adapting-16kb-sharp-cartridge

quarta-feira, 1 de maio de 2019

Livros novos da semana:
Generatingfunctionology: Eu já tinha em pdf (free no site do autor), mas é tão bom como referência que comprei uma versão em papel. Pode parecer redundante para quem já tem o Concrete, mas esse livro é muito mais malandro, ensina até a técnica do Óleo de Cobra para resolver somatórias (e funciona mesmo, é bem boa essa técnica).
Elliptic Tales: Faz tempo que eu estava querendo aprender funções elípticas, e esse livro aqui bateu certinho com o meu nível. Os autores são bons em visualização, deu para imaginar bem os truques de resolução. Por exemplo, a assimetria das cônicas: o círculo e a elipse são fechados, mas a parábola e a hipérbole são abertas. Mas não é bem assim, a parábola e a hipérbole são fechadas também, você que está desenhando no plano errado! Usando o plano projetivo ao invés do plano cartesiano dá para ver direitinho onde a parábola fecha.
99 Variations on a Proof: É um livro de humor haha. Ele pega um problema bobo (achar as raízes de x^3-6x^2+11x-6=2x-2), faz 99 demonstrações diferentes. Tem umas que são tradicionais (demonstração por álgebra, por topologia, pelo axiomas, por matrizes), umas que são bem curiosas (demostração mecânica, eletrostática, musical), e outras que são da zoeira mesmo (demonstração por calculadora, por blog, por email para o orientador, por experiência mística).
Geometric Folding Algorithms: Eu comprei esse para aprender a geometria dos origamis (com régua e compasso você só faz equações quadráticas, com origami você faz cúbicas). Mas acabou que eu gostei mais das dobraduras 1D do que das dobraduras 2D! (A geometria de dobrar uma linha é a mesma geometria dos espirógrafos e dos braços robóticos).
Games, Puzzles and Computation: Esse livro mostra uma álgebra para calcular complexidade de jogos e puzzles. Por exemplo: o 15-puzzle é P, o Sudoku é NP-completo, o Othello é PSPACE-completo, o Go japonês é EXPTIME-completo, o Go chinês, com regra de superko, ninguém sabe ainda! Mas a parte curiosa é que ele faz uma álgebra completa só com OR e AND. Na minha cabeça para ser completa precisa ter NOT, mas ele fez sem isso.
Tribute to a Mathemagician e A Lifetime of Puzzles: Esses dois são coletâneas de puzzles baseados na obra do Gardner. Tem um evento que eu quero muito ir que é o Gathering for Gardner, mas esse evento é fechado, só entra e você inventar um puzzle novo e tiver um convite de alguém que já participa. O convite eu consigo, só falta inventar um puzzle! Então com esses livros eu tenho um monte de exemplos para me inspirar.


quarta-feira, 10 de abril de 2019

Hoje liberaram a imagem do ano: finalmente conseguimos tirar a foto de um buraco negro!
Antes de mais nada, agora finalmente conseguimos prova de que um buraco negro existe. Quer dizer, antes a gente só tinha o pato. Nós sabíamos que existia uma coisa que grasnava como pato, voava como pato, nadava como pato, logo não tinha como não ser um pato. Mas agora nós conseguimos *ver* o pato, é outro nível de confirmação.
E como nós conseguimos ver um buraco negro? Quer dizer, buraco negro é negro né? Em princípio tinha que ser invisível. Por sorte, alguns buracos negros tem accretion disks, que são como os anéis de Saturno. Esse buraco negro que foi fotografado, no centro da galáxia M87, está bem alinhadinho com a gente, então é como se estivéssemos vendo ele "de cima". O buraco negro em si está no meio da região escura dentro do anel.
E porque escolheram justo esse da M87? Bem, ele é o segundo maior para a gente. Buracos negros existem em todos os tamanhos, mas para tirar foto o que interessa é o tamanho aparente visto da Terra, esse que você mede em ângulos no céu. O maior de todos seria o Sag A* no centro da Via Láctea, o M87 é o segundo maior (não consegui achar um motivo para não terem feito do Sag A*, talvez ele não tenha accretion disk).
Pela foto tem mais um monte de informações para tirar. Primeiro dá para tirar o tamanho físico, o diâmetro da parte escura na foto é por volta de um dia-luz, o que é mais ou menos o tamanho do sistema solar. A parte escura é mais ou menos o ISCO (a menor órbita estável de fótons em volta do buraco negro), mas não é o ISCO completamente porque tem uns efeitos de lente gravitacional distorcendo. O horizonte de eventos em si é linear com a massa, como a massa dele é 6.5 bilhões a massa do sol, então o raio do horizonte de eventos deve ser uns 0.37 dias-luz, se eu não errei a conta.
O anel em si é assimétrico, uma metade é mais brilhante que a outra. Isso é por conta do Doppler, o accretion disk gira tão rápido, mas tão rápido, que o efeito Doppler fica visível mesmo nessa distância pequena entre eles. Por conta, disso, também dá para deduzir que o buraco negro está girando no sentido horário haha. Quer dizer, o accretion disk está girando no sentido horário, o buraco negro em si poderia estar rodando com um vetor diferente, mas aparentemente o vetor de rotação dos dois é quase igual para esse buraco negro.
Inclusive isso é outra coisa que tiramos da foto, esse buraco negro tem métrica de Kerr. Tem quatro tipos básicos de buracos negros, eles podem ser com ou sem rotação, e com ou sem carga elétrica. Parece que essa foto só é consistente com um buraco negro que gira, mas não tem carga. Também deu para excluir um monte de outras possibilidade de "coisas que deixam buracos no céu", por exemplo, os dados são suficientes para concluir que esse não é um wormhole. Só tem duas alternativas que são mais difíceis de excluir (uma boson star, que é tipo uma "estrela de dark matter", ou uma gravastar, que é tipo uma "estrela de dark energy"). Mas a gente entende tão pouco de dark matter ou dark energy que isso não é falsificável com nosso conhecimento.
O método usado para tirar a foto em si é fascinante. Nenhum telescópio na Terra tem resolução para ver o buraco no meio do anel, então o jeito foi usar literalmente a Terra como telescópio. Nos usamos vários radio telescópios pequenos espalhados pelo mundo como se fossem um só telescópio gigante apontando para o buraco negro.
O problema nesse caso é que a imagem fica ill-posed. Imagina uma tv lcd com seis dead pixels. O dado bruto que coletamos foi exatamente o contrário, é como se fosse uma tv cheia de dead pixels, e só tem seis pixels acesos. Tirar a imagem inteira só de seis pixels é impossível; ou melhor, é ambíguo: tem várias imagens possíveis que podem ter gerado esses pixels. Dá melhorar um pouco apontando os telescópios para o buraco negro ao longo de um dia inteiro, como a Terra está girando, é como se tivéssemos seis tracinhos ao invés de seis pontos. Mas não é o suficiente.
O jeito então é sair fazendo suposição para completar a imagem. Não é diferente de como fazemos tomografias. A tomografia bruta que sai do aparelho no hospital é 1D, a gente usa algoritmos do tipo backprojection para transformar em 2D. Para recuperar a dimensão perdida, você sai fazendo suposições, por exemplo, você supõe que a imagem é contínua (não tem como não ser né).
No caso desse buraco negro, dava para usar dados de outras frequências como parâmetros de inicialização (por exemplo, medidas fora do vísivel, em x-rays). Mas ainda não era suficiente, só com isso não tinha como distinguir se era um anel simétrico, um anel assimétrico, um disco inteiro sem buraco, um par binário, etc. Aí o jeito foi apelar: eles construíram uma simulação usando as equações do Einstein e as variáveis que a gente já conhecia (massa, x-rays, etc), deixaram a simulação rodando, e depois usaram a saída da simulação como parâmetros iniciais na reconstrução. O processo é super complicado e lento, por isso que a imagem demorou tanto para sair (os dados foram coletados em 2017, só agora em abril de 2019 que a imagem ficou pronta).
Uma parte curiosa é que esses dados ocupam muito, muito espaço, vários petabytes. Não tinha como ficar mandando de um laboratório para outro pela internet, então eles comunicavam por avião ("não subestime a largura de banda de um caminhão cheio de hds"). Durante o press release, um dos cientistas levou o rack com hds para mostrar, deixou em cima de um banquinho (Aí, na hora das perguntas, o cara ao lado usou o rack como descanso de copo. Herege, isso tinha que estar num museu, não servindo de apoio de copo haha).
Aliás, lendo os papers você tem noção de quem eram os cientistas que fizeram esse trabalho. O algoritmo de reconstrução chama "PIpeline for the Calibration of high Angular Resolution Data" (PICARD), e o algoritmo de redução de dimensionalidade é o Advance Long Baseline User Software (ALBUS). A biblioteca em python que implementa o ALBUS é a ParselTongue. Manjei esses cientistas.
Enfim, altamente excitado com a foto. Acho muito louco o quanto eu pude ver nesse meu lifetime. Eu vi o teorema de Fermat sendo resolvido, eu vi a detecção de ondas gravitacionais, só não vi mesmo o cometa de Halley mas esse eu ainda não perdi as esperanças haha.


quarta-feira, 30 de janeiro de 2019

Dia desses eu estava apanhando para fazer benchmarks, os resultados não saiam consistentes de jeito nenhum, aí eu pesquisei e descobri o culpado: era o Intel Turbo Boost.

Minha história é a seguinte: se eu rodasse um torto reverso sozinho, ele levava uns 180min para terminar. Mas se eu rodasse dois tortos reversos ao mesmo tempo, aí dava uns 220min, o que não faz sentido, porque minha cpu tem vários cores né? Em paralelo, sem compatilhar memória, o tempo tinha que ser o mesmo.

Pois bem, minha cpu é uma Intel(R) Core(TM) i7-8550U ("Kaby Lake"), que nominalmente roda a 1.80GHz. Esse clock, naturalmente, é variável. Se a CPU está idle, ele abaixa o clock para gastar menos energia. No meu caso, o ubuntu sem nada em background rodando deixa o clock em uns 800MHz mais ou menos.



Mas essa CPU tem o danado do Intel Turbo Boost, que me 99% dos casos é super legal! O que o Turbo Boost faz é alterar o clock para cima do nominal (ou seja, overclock automático). Quando a CPU está sendo muito utilizada, ele usa o sensor interno de temperatura da CPU para ir aumentando o clock sozinho até a CPU chegar na temperatura limite (em dias frios pode ir até 4GHz; hoje o dia está quente, então o máximo que ela está chegando é 3.4GHz).



Pois bem, como o limite de clock é dado pela temperatura, se esquentar demais ele abaixa até voltar ao limite novamente. E olha a pegadinha aí: rodando UM torto reverso sozinho, eu tenho um core a 100%, ele sobe o clock até 3.4GHz. Mas se eu rodo DOIS tortos reversos em paralelo, então são dois cores a 100%, o que dá o dobro de área no chip sendo utilizado, e portanto o dobro da dissipação. A temperatura aumenta e o clock cai (acabei de testar e agora está caindo para 2.9GHz).



Então fica a dica: se você for rodar benchmarks e quer resultados consistentes, ou você desliga o Intel Turbo Boost na BIOS, ou roda só um processo por vez.

(Para medir o clock real da CPU eu uso o i7z, tem no apt mas recomendo compilar um fork atualizado: https://github.com/infowolfe/i7z )




domingo, 18 de novembro de 2018


Consegui mais dois autógrafos, dessa vez do Steve Russell e do Peter Samson, criadores do Spacewar!
Para quem não conhece, o Spacewar foi o primeiro videogame a viralizar. Existiram outros videogames antes, mas nenhum fez sucesso como Spacewar. Foi criado em 1962 no MIT e dali os cartões perfurados com o jogo foram parar em todos as universidade que tinham um PDP-1. (Um desses cartões foi parar na mão do Bushnell, e ele criou o primeiro arcade do mundo, Computer Space, que também foi o produto que deu origem à Atari).
O Russell e o Samson estavam ontem no Computer History Museum de Mountain View fazendo uma demonstração do Spacewar no PDP-1 funcional que tem lá. O Russell foi o idealizador do jogo e main programmer, o Samson pegou o jogo original e adicionou as estrelinhas no fundo haha. (Você pode achar que estrelinhas no fundo são meh, mas essas estrelinhas são astronomicamente corretas: ele desenha corretamente o céu do MIT no horário atual. Se você jogar por horas a fio, dá para ver as estrelas mexendo).
Aproveitei, é claro, para matar minhas curiosidades técnicas. A primeira coisa impressionante é que apesar do PDP-1 ter o tamanho de quatro armários grandes, o jogo boota instantaneamente. O segredo é que o PDP-1 usa core memory, e core memory não é volátil. Se deixar desligado por vinte anos, o jogo ainda vai estar na memória quando você ligar. Outra coisa que eu não entendia é como ele tinha um framerate tão alto. Um Z80 iria morrer calculando as equações de Newton nessa velocidade. O truque é que o PDP-1 tem multiplicação e divisão por hardware! (Quando você comprava o PDP-1, podia escolher quais opcodes queria instalar na CPU dele).
Agora, o que me pegou de surpresa na apresentação, e que eu não fazia a menor idéia, é que o Peter Samson foi o autor da primeira música polifônica sintetizada por computador! O PDP-1 tem leds programáveis no gabinete, então o que ele fez foi conectar os fios que iam pros leds num alto-faltante, e ligar e desligar rapidinho o sinal neles. Tcharam: quatro ondas quadradas programáveis por software. E ele tinha alguns cartões originais, então além de jogar ao vivo o primeiro videogame, deu também para ouvir ao vivo a primeira melodias polifônica sintetizada.
(Eu gravei o audio da palestra, depois edito e coloco online em algum canto).


segunda-feira, 8 de outubro de 2018

Começando com um mea culpa, infelizmente eu sou responsável por boa parte dessa merda toda. Na década de 90 eu tinha website e fanzine digital, ajudei a criar a cultura brasileira na internet. No começo do século eu trabalhava criando dispositivos de inclusão digital, e depois eu fui desenvolvedor do Orkut, a rede social que ensinou os brasileiros a usar a internet.
Eu fiz tudo isso na inocência, achava de verdade que a internet iria trazer mais informação a todos, e que isso melhoraria o mundo. Hoje vejo que fui ingênuo, subestimei o papel da falsa informação e de como a internet permitiu a manipulação de massa de um jeito muito mais eficiente.
Mas se me permitem, eu acho que sei onde a coisa deu errado e tenho uma sugestão para melhorar. Eu acho que o foco do problema é o *broadcast privado*.
Broadcast nunca fui problema na internet. As pessoas mandavam mensagens em lista de discussão, postavam em comunidade do orkut, e nesses meios o fake news nunca teve esse poder que tem hoje.
O que mudou é que hoje em dia você pode fazer broadcast para grupos fechados (tipo o zap da família). Isso foi o game changer. Quando você postava na lista de discussão ou na comunidade do orkut, você estava aberto à contestação, se você posta X, alguém sempre pode postar não-X logo abaixo. Em termos de evidência acumulada, as coisas se cancelam.
Mas o zap da família é diferente porque é uma rede de contatos confiáveis. Você confia nos seus parentes. Quando chega uma mensagem nesse grupo, você tende a confiar por default na mensagem porque você confia em quem mandou, e essa confiança no emissor transfere para a mensagem.
Aí você forma uma rede de confiança. Não importa que o emissor original seja um bandido na cadeia, escrevendo de um celular que entrou na cela enfiado no cu. Se a mensagem dele passar de grupo em grupo, ela vai ganhando confiança ao longo do trajeto, porque cada broadcast privado aumenta a confiança dela. A confiança vem do caminho, não do conteúdo.
A solução fácil para isso seria banir broadcast privado. Não pode mais ter grupo de zap, ou pelo menos não pode ter botão de share para grupo privado: se você quiser repassar, vai ter que reescrever. Aumentando a fricção no processo de share, a mensagem falsa tem mais dificuldade de propagar.
Outra solução seria fazer tracking da confiança da mensagem. Eu não faço idéia de como implementar isso, mas cada mensagem teria que ter um score que medisse a confiança da origem. Uma mensagem que transitou inalterada de uma fonte primária teria score alto, uma mensagem enviada por celular tirado do cu teria score baixo.
Mas eu não sei se nenhuma dessas alternativas é economicamente viável, dado que os times que implementam esses apps medem sucesso baseado em quantidade de shares. Se alguém tiver uma idéia melhor para atacar o problema eu agradeço.


quinta-feira, 13 de setembro de 2018

Programar computadores para mim é mais que uma atividade, é um estilo de vida. Praticamente tudo que eu faço gira em torno disso. Meu trabalho é programar computadores, nas horas vagas eu programo computadores por hobby, até minha esposa eu conheci numa comunidade de computadores.
E quem me ensinou a programar computadores foi meu pai. Quando eu era bem pequeno, nós programávamos BASIC usando papel e lápis. Nos fins de semana ele me levava para o trabalho dele, onde eu treinava nos computadores da empresa. E depois de um tempo nós conseguimos comprar um TK90X que foi o meu primeiro computador.
Estava aqui pensando que meu pai tem muito em comum com o Prometheus da lenda. Prometheus deu a vida aos humanos a partir do barro, e depois roubou a chama do conhecimento para a humanidade. Foi isso que meu pai fez, me deu a vida e o conhecimento da programação. Todo o resto que eu fiz veio disso.
Após roubar a chama do conhecimento, Prometheus foi preso em uma montanha, onde toda noite uma águia comia um pedaço de seu fígado. Infelizmente, meu pai também teve isso em comum com ele. Mas, ao invés de uma águia, foi um câncer que comeu o fígado do meu pai. Desses que crescem muito rápido, e não tem remédio nem Hércules que segure.
Hoje meu pai faleceu. Obrigado por tudo pai, você foi um Titã.


terça-feira, 20 de março de 2018

O Sloane publicou uma sequência que eu inventei no OEIS! A sequência é "a quantidade de caminhos de n passos feitos por um rei que começa no canto de um tabuleiro de xadrez infinto". O link é https://oeis.org/A300665

A história da sequência é assim: a gente sabe que o melhor método para resolver puzzles é o exact cover, mas ele só funciona para puzzles tipo sudoku (cada quadrado pode ter só um número), e não funciona em puzzles tipo akari (cada quadrado pode estar iluminado por mais de uma lâmpada).

Mas no começo do ano o Knuth publicou uma variação do exact cover que funciona com todos os puzzles, de fato, funciona com qualquer problema que possa ser descrito como constraint programming.

É claro que a primeira coisa que passou pela minha cabeça foi: "serve para o Torto Reverso?" (*) Quer dizer, é claro que serve, mas é um bom algoritmo na prática? Antes de codificar, eu resolvi estimar qual seria o tamanho da matriz de cover, e de cabeça ela tem que ser mais ou menos da ordem do número de caminhos que um rei por fazer no tabuleiro de xadrez (já que os movimentos do rei são os mesmos movimentos do torto reverso).

Usar os métodos do post de ontem (**) não funciona porque os caminhos não podem repetir casas. Então tem que ser a força bruta mesmo. Fiz um scriptinho em python e damn, a(7)=60215, isso não vai convergir nunca, a matriz é muito grande.

De curiosidade, eu peguei a sequência e coloquei no OEIS para ver se tinha assintótico, e uepa! ninguém tinha calculado essa sequência ainda! Fiz uma implementação em Mathematica para conferir as contas e submeti a sequência.

O povo do OEIS adorou, mas achou pouco. Com o python eu consigo ir até a(12) só e eles queriam mais. Então eu apelei e reimplementei em C++, aí deu para ir até a(15). Mesmo com a cpu em 100% não dá para ir muito além.

Mas eu não me preciso me limitar a 100% de cpu né? Reimplementei em Go e usando 800% de cpu eu consegui o a(16). Depois eu reparei as sequencias são simétricas em relação ao eixo de 45 graus, então só preciso calcular metade delas. Aí cheguei no a(17). Depois disso todas as minhas heurísticas falharam, mas eu ainda não desisti. (Quer dizer, é só deixar o computador ligado uma semana direto que eu pego mais números, mas eu queria um jeito que dê para computar rapidamente).

(*) Se você não conhece o torto reverso, o prêmio ainda não teve ganhadores -> http://blog.ricbit.com/2011/05/torto-reverso.html
(**) Se você perdeu o post de ontem sobre otimização em grafos, ainda dá tempo -> http://blog.ricbit.com/2018/03/a-marcha-dos-lemmings.html

quinta-feira, 4 de janeiro de 2018

Estava lendo agora sobre a vulnerabilidade nova que estão exploitando, e é bem legal!

Funciona assim: primeiro você executa um código desse jeito:

If (bigvalue < a.length) { value = a[bigvalue]; }

Se bigvalue for um valor maior que o tamanho do array, voce faria uma leitura fora de bounds, o que te permitiria ler qualquer valor da memória. Mas isso não deveria acontecer, por dois motivos: primeiro o if garante que você nunca executa aquele trecho; segundo mesmo que permitisse a cpu iria estourar um page fault porque você não tem permissão de ler aquele endereço.

SÓ QUE sua cpu tem execução especulativa. Se o a.length estiver fora do cache, a cpu precisa esperar uns 100 ciclos até o valor chegar. Para não ficar parada, ela sai executando o interior do if, e descarta essa execução quando o valor chega.

Em princípio isso não deveria ser acessível para o usuário, mas olha a pegadinha: como ele executou especulativamente o if, então agora o a[bigvalue] está no cache!

Agora você pode usar o seguinte código:

If (bigvalue < a.length) { value = a[bigvalue];
If (value&1 > 0) { x = a[100]; } else { x= a[200];}
}

Você controla o array a, então suponha que você forçou o array inteiro para fora do cache. Quando você executar esse código, a cpu vai tentar ler o a.length e travar (já que está fora do cache). Ela vai tentar executar especulativamente o if interno, e ela consegue (nesse ponto o a[bigvalue] está no cache e a cpu está executando especulativamente, então não checa as permissões). Dependendo do bit 0 do a[bigvalue] ela vai tentar ler o a[100] ou o a[200]. Eventualmente o valor de a.length chega e a cpu rebobina tudo porque o primeiro if falhou.

Agora vem a malandragem, você mede o tempo que leva para ler a[100] e a[200]. Só um deles foi parar no cache, aquele que ler mais rápido indica qual o valor do bit 0 de a[bigvalue]! Você acabou de ler um bit que não tinha permissão! Repete isso para os outros bits e você consegue ler qualquer valor da memória, até a senha do banco que está no outro tab do seu browser!

Para matar isso é fácil, só desligar o cache na bios. Mas aí seu computador de 2018 vai ficar mais lento que 386 rodando Windows 10, então ninguém vai fazer isso. Sacada muito boa, kudos para quem inventou a técnica.

sábado, 16 de dezembro de 2017

Star Wars - COM SPOILER
Não clique no "ver mais" se você ainda não viu o filme!
Sério, o filme sem spoiler é muito bom, qualquer coisinha que você ler vai diminuir a experiência!
(Abaixo da linha tracejada tem spoiler)


--------------------------------------
SPOILERS AHEAD
Separando em tópicos:
- Sim, um monte de gente morreu. Mas só teve uma morte que me deixou sentido, que foi o Ackbar. Poxa, um personagem tão legal morrendo off-screen? E não apenas mataram o Ackbar, destruíram também a nave dele, a Home One. Eu fiquei aqui pensando que essa não deveria ser a versão original do roteiro. Veja que todas as cenas com a almirante de cabelo roxo poderiam ter sido passadas para o Ackbar sem problemas, e o final seria muito melhor. O Ackbar sozinho na Home One, começa a ligar os hyperdrives, todo mundo achando que ele vai fugir, até que o Hux percebe que o Ackbar está virando na direção dele e fala "IT'S A TRAP!". Diz aí se não seria uma cena muito mais épica!
- (Se alguém pensou nisso, eu acho que mudaram para a almirante genérica porque a trama do Poe precisava que ele não conhecesse direito o comandante. Sem isso não teria o motim. A Ila Fox tem uma teoria mais simples de que essas cenas precisam de alguém que consiga atuar e mostrar emoção no rosto, e a máscara do Ackbar é meio limitada né. Não tem como fazer um fruto do mar ser expressivo).
- Eu posso estar sendo muito polêmico, mas agora eu acho que o Kylo Ren é um vilão melhor que o Vader. Sim, o Vader é malvadão e tal, mas eu tenho mais medo do Kylo Ren que do Vader. Veja, eu sei o que o Vader faz, ele faz malvadeza. O Kylo Ren eu não sei! Uma hora ele está amiguinho, na outra ele surta e fica contra você. Eu tenho muito mais medo de quem é imprevisível do que quem é consistente. O Vader sacaneava quem era subordinado, mas os chefes mesmo ele obedecia (tipo o Tarkin e o Imperador). O Kylo Ren não respeita mestre do light side, nem mestre do dark side, nem subordinado, nem ninguém. O Vader é lawful evil, o Kylo é chaotic.
- Inclusive, eu não sei se vocês tem experiência com gente surtada, mas ver isso de perto é um negócio assustador. E o Adam Driver conseguiu colocar isso no Kylo Ren. Naquela cena final dele com o Luke, o Kylo estava com o olhar do cara surtado (se você não sabe como é, procura no youtube o vídeo do Morre Diabo). Aquele é o olhar de quem está surtado, e é o olhar do Adam Driver na luta final (e eu acho que foi por isso que escolheram especificamente ele para interpretar o Kylo Ren, na série do Girls ele tinha uns momentos assim).
- Aliás, agora eu entendo as razões do Kylo Ren. Imagina a cena: você está de boa dormindo, aí de repente aquele tio que nunca casou entra no seu quarto à noite, com um olhar estranho e o pau de luz na mão. Quem não surtaria? E veja ainda que a escola Jedi é uma escola religiosa. O Luke era padre né. Super entendo a revolta do Kylo Ren.
- Sobre o Luke, achei muito bom como as dicas da cena final estavam todas lá, e mesmo assim eu não percebi. Quando o Luke aparece, ele está com a barba de outra cor, a barba está aparada ao invés de largada, o lightsaber está com a cor errada (azul ao invés de verde), estava tudo indicando que não era o Luke de verdade. Acho que o único que percebeu foi o C3PO, ele ia comentar alguma coisa mas o Luke interrompeu com uma piscadinha.
- Falando em pequenos detalhes, eu preciso ver o filme de novo para confirmar, mas eu posso jurar que no finalzinho, quando o Finn vai entrar na Falcon, ele abre uma gaveta/armário/something e de relance dá para ver os livros sagrados dos Jedi lá dentro. A Rey roubou os livros antes de fugir da ilha. Se realmente for isso que aconteceu, então a fala do Yoda fica ainda melhor ("não tem nada nessa árvore que a Rey já não tenha").
- Sobre a Rey, o diretor conseguiu encaixar bem as cenas desse filme com as do Império. Parece que todo lugar que é forte na Força de um lado também precisa ser do outro. O Yoda se escondeu em Dagobah, mas lá tinha uma caverna cheia de dark side; assim como na ilha desse filme. Achei bacana como as imagens se encaixam: o Luke vai procurar a resposta sobre o Vader e só encontra a si mesmo; a Rey vai procurar a resposta sobre seus pais e só encontra a si mesma. Talvez o diretor esteja sugerindo que o dark side é pensar mais em si mesmo que nos outros, o que bate com a mensagem da Rose antes de desmaiar.
- Inclusive eu estava com medo desse filme ser muito copiado do Império como o Force Awakens foi com o episódio 4, e a cena inicial da first order atacando a resistência em fuga me deixou apreensivo. Mas foi melhor que isso, o filme se descolou dos fatos e manteve só a temática em comum. No Império, o plano do Han de esconder com o Lando falha, o plano do Lando de vender o Luke e salvar o Han falha, o plano do Luke de derrotar o Vader e salvar todo mundo falha. O mesmo nesse filme, o motim do Poe falha, o plano do Finn de desligar o sensor falha, o plano da Rey de redimir o Kylo falha.
(Vou ver de novo no imax na quinta, depois eu complemento).
(Star Wars - Sem Spoiler)


Eu não gosto de futebol. Não gosto de jogar, não gosto de assistir, não vejo graça. E por isso, eu não entendo essa emoção toda que as pessoas sentem quando vão ao estádio e assistem ao time predileto fazer um gol. Para mim não faz sentido.
Mas eu imagino que deve ser parecido com assistir a uma pré-estréia de Star Wars. Eu lembro que na pré-estréia do episódio 2, quando o Yoda ligou o lightsaber na luta final a galera no cinema aplaudiu e gritou de emoção, como se fosse futebol mesmo.
Pois bem, nesse filme novo isso aconteceu umas cinco vezes. Teve gente gritando, gente aplaudindo, gente rindo, teve até gente chorando. Esse diretor sabe construir cenas de impacto, a impressão que me deu é que ele mandou todo mundo ir lá no tv tropes ler a entrada de Up To Eleven antes de interpretar os personagens.
Achei engraçado como tem muito de Star Trek nesse filme. Tem uma cena com um diálogo inteiro de technobabble que parece episódio de TNG. E Star Wars sempre teve escudos com campo de força na mitologia, mas dessa vez eles aparecem visualmente de um jeito que lembrou demais a Enterprise.
Dá para ver uma decisão consciente de expandir o público-alvo. Star Wars originalmente era coisa de menino. Mas agora tem cenas que foram claramente inseridas para o público feminino (e pelo alvoroço nas listas femininas de Star Wars que a Ila Fox participa, eu sei que funcionou). Eu achei curioso também que esse é o primeiro Star Wars vegetariano(!)
Mas o melhor do filme mesmo já estava escondido no trailer. A mensagem do trailer era "let the past die", e isso fizeram com maestria. Tanto o Force Awakens quanto o Rogue One eram filmes que olhavam para trás, o Last Jedi é um filme que olha para a frente. O foco não é nostalgia, pelo contrário, é destruir a nostalgia para reconstruir uma coisa nova.
Esse exercício de destruir para reconstruir melhor eu já vi antes, quando o Alan Moore criou o America's Best Comics. Ao invés de fazer super-heróis autofágicos como a Marvel e a DC fazem, ele foi na fonte original da mídia (pulps) e reconstruiu a partir da dali. Esse diretor fez o mesmo com Star Wars (a fonte original de Star Wars era Kurosawa, e esse filme tem momentos explícitos de Rashomon. Duna também. Tatooine era Arrakis, e nesse filme tem dilemas que são saídos de Duna, como a ética da presciência).
Enfim, recomendo de com força.