|
Convite: Maxima (agosto/2024; legendas)
A página com o mapinha da instalação do eev
é essa aqui: link.
Minha página sobre eev e Maxima.
Página sobre a oficina de Lean4.
Link curto pra esta página: https://bit.ly/4dxnQfI
Link pro vídeo no Youtube: aqui.
As legendas dele em Lua estão aqui,
e o resto desta página tem uma conversão das legendas em Lua
pra um formato um pouco mais legível.
00:00
00:01 Oi gente, o meu nome é Eduardo Ochs, e o
00:04 título desse vídeo é "Convite: Maxima".
00:06 Deixa eu começar explicando o que que é
00:08 o Maxima: o Maxima é um sistema de
00:10 computação simbólica, tipo Mathematica,
00:13 Maple, mas menos famoso... e ele é software
00:16 livre - é gratuito.
00:18 E aqui tem um exemplo de como usar ele.
00:22 A maior parte das pessoas usam ele
00:24 com interfaces mais bonitas, gráficas e
00:26 não sei que, mas eu passei anos tentando
00:28 usar aquelas interfaces, e eu não conseguia
00:30 lembrar de tudo... e eu gosto mais dessa
00:31 interface feia porque ela me permite
00:34 criar links pra documentação, pra
00:35 exemplos, e coisas assim.
00:37 Então... eu tou dentro do Emacs, e quando eu
00:42 rodei essas três linhas daqui ele dividiu a
00:44 janela em duas subjanelas, e aqui na
00:47 janela da direita ele abriu uma sessão
00:49 do Maxima.
00:51 Eu tanto posso dar comandos aqui
00:53 explicitamente, como posso bater F8 aqui...
00:56 e aí ele manda a linha em que eu tou pro
00:58 Maxima como se o usuário tivesse
01:01 digitando aquela linha toda de uma vez.
01:03 E aí quando eu mandei esse comando aqui,
01:05 plot2d, o Maxima chamou um programa
01:07 externo, GNUPlot, para fazer o gráfico de
01:10 uma função, e quando eu mando esse
01:13 comando daqui, plot3d, ele faz esse
01:16 gráfico 3D da função, que eu posso até rodar.
01:21 Agora um segundo exemplo, tá... uma
01:24 das utilidades do Maxima é fazer contas
01:26 que são chatas. Então ao invés da gente
01:29 ter que fazer páginas e páginas de contas na
01:31 mão o Maxima faz elas pra gente.
01:34 Deixa eu dar um exemplo. Eu tou dando Cálculo 2,
01:36 e uma das questões da prova que eu dei
01:40 outro dia era uma integral bem chata de
01:42 fazer... essa daqui, ó.
01:44 Eu ainda não fiz o
01:47 gabarito LaTeXado dessa questão mas
01:51 eu fiz uma espécie de gabarito em Maxima
01:53 dela. Quando eu rodo ele em Maxima - ele tá
01:57 aqui, desculpa pela letra pequenininha...
02:00 repara, aqui eu dou a função
02:02 original, que é x vezes essa raiz
02:05 quadrada daqui, e aí eu boto ela dentro
02:08 de uma integral, e aí depois vou
02:10 transformando essa integral de vários
02:11 jeitos diferentes... e em todos os passos
02:14 em que eu chego em um resultado que
02:16 merece ser guardado eu guardo esse
02:18 resultado dentro de uma variável.
02:20 E aí nesse último passo daqui eu crio uma
02:25 matriz, que nós, que somos humanos, vamos
02:28 ver ela com uma série de igualdades,
02:30 que diz que essa integral daqui é igual
02:32 a essa integral, que é igual a essa, que é
02:35 igual a essa, etc, até a gente voltar para
02:37 essa expressão aqui, que não tem sinal de
02:39 integral e já tá de volta na variável
02:41 original. Pro Maxima isso é simplesmente
02:43 uma matriz em que em algumas
02:46 entradas dela tem
02:47 expressões matemáticas, outras entradas
02:51 não tem nada, e outras têm um sinal de
02:54 igual.
02:57 Deixa dar um exemplo de como eu
03:00 botei isso na prova, no gabarito...
03:03 pouquíssima coisa que eu faço é feita pra
03:05 ser impressa, em geral os alunos acessam
03:07 os pdfs nos celulares deles, e aí eu
03:09 posso botar coisas bem pequenininhas,
03:11 eles não têm problema nenhum para dar
03:13 zoom nessas coisas... então aquele passo
03:15 final que gerou aquela matriz que eu
03:18 interpreto como uma série de igualdades
03:20 gera isso daqui, tá... e os outros passos
03:23 estão aqui para quem quiser ver o
03:26 passo a passo sem ter que rodar Maxima
03:29 na sua própria casa.
03:31 Então, voltando, eu ainda não expliquei
03:33 pra que que é o convite. Deixa eu
03:36 explicar isso em duas partes. A primeira
03:37 é uma introdução.
03:39 Eu trabalho num campus pequeno
03:41 da UFF. A sede da UFF é em Niterói, lá no
03:44 estado do Rio, e esse Campus pequeno
03:47 é no interior, numa cidade chamada Rio
03:49 das Ostras. O campus em que eu trabalho é
03:51 um lixo. A gente tem dois cursos de exatas,
03:54 que são Ciência da Computação e
03:56 Engenharia de Produção, e eles não têm
03:58 nenhuma disciplina que use Linux, os
04:00 nossos únicos laboratórios com Linux são
04:02 no Instituto de Humanidades e Saúde, não
04:04 no Instituto de Ciência e Tecnologia...
04:07 e, resumindo muito, mas deixa eu já avisar
04:10 que vai ser naquele esquema de
04:12 "resumiu tanto que ficou quase errado"...
04:15 Durante a greve, em que eu dei umas
04:17 oficinas de Software Livre, eu descobri
04:18 que os nossos estudantes de Psicologia e
04:20 Produção Cultural têm muito mais
04:22 curiosidade por programação do que os
04:24 nossos estudantes de exatas... Parece que
04:26 toda vez que eles vêem uma
04:28 interface estranha ou uma
04:30 linguagem exótica ao invés deles ficarem
04:32 curiosos eles ficam com cara de: Ai meu
04:34 Deus, ai meu Deus, será que eu vou ter que
04:36 aprender isso???...
04:38 Então, bom, voltando. Segunda parte do
04:41 "O convite é pra quê?". É o seguinte: eu
04:44 tou trabalhando num modo de instalar
04:47 tudo isso no Windows em que a gente
04:49 primeiro instala o WSL, que é o Windows
04:51 Subsystem for Linux,
04:53 que é uma espécie de emulador ou
04:56 virtualizador de Linux que é feito pela
04:58 própria Microsoft...
05:00 E aí depois a gente instala uma versão
05:02 do Linux - o Debian - instala o Emacs,
05:04 instala o eev, instala o Maxima... e em
05:08 algum momento essas minhas instruções de
05:10 instalação vão ficar melhores ainda do
05:12 que já estão agora e vão caber em uma
05:14 hora... alguns meses atrás elas
05:17 levavam duas horas e tinham pedaços
05:19 horríveis, agora já têm uma hora e
05:20 pouquinho, e eu já consegui tirar quase
05:22 todas as partes chatas... e aqui nessa
05:25 página tem um mapinha da parte
05:28 inicial das instruções. Esse mapinha é
05:30 uma das coisas que eu quero melhorar.
05:32 Nesse diagrama 2D daqui várias coisas
05:35 são links... então se eu clico aqui eu vou
05:38 pro meu tutorial chamado
05:42 find-windows-beginner-intro,
05:45 aí aqui tem uma introdução que
05:47 não interessa agora, depois tem as
05:49 instruções para instalar o WSL, o Debian
05:51 e o Emacs...
05:53 lembrem que isso é ajustado pra pessoas
05:56 que nunca viram um terminal na vida...
05:58 e aí a partir desse momento daqui, em que
06:00 a gente inicia o Emacs, todo o resto é
06:02 feito no Emacs, inclusive... lembrem dessa
06:05 interface daqui, em que eu rodo terminais
06:09 dentro do Emacs, tá... então em vez de rodar
06:12 um terminal externo e ter que decorar
06:14 coisas e copiar e colar coisas
06:17 complicadas a gente basicamente manda
06:20 coisas pro terminal com F8.
06:26 Então, aqui tem links pras outras
06:28 instruções, e em algumas coisas aqui
06:30 que têm instruções um pouco mais
06:32 complicadas eu aponto para vídeos...
06:35 por exemplo, assim que a gente entra
06:38 no Emacs a gente tem que instalar o eev,
06:42 e o package manager do Emacs tem
06:45 uma interface que eu acho meio
06:47 esquisita... então eu preparei um vídeo
06:49 explicando isso, e esse link daqui... ele
06:52 vai para uma determinada posição do
06:53 vídeo - 00:39, aqui...
06:55 essa página aqui tem as legendas
06:57 do vídeo - repara que a gente já pulou
07:00 pra cá... e se a gente clicar nesses links
07:02 daqui a gente abre o vídeo no YouTube.
07:06 Só que ninguém tem paciência para isso, né,
07:08 porque leva 30 segundos pra abrir o vídeo
07:11 no YouTube, é chatérrimo... então a gente
07:13 precisa de alternativas melhores para isso.
07:16 Esse esquema do link pro YouTube até
07:18 funciona, mas ele é precário...
07:21 e o esquema melhor
07:24 usa coisas tipo isso aqui pra
07:27 apontar direto para vídeos... então...
07:31 Tem um exemplo aqui, ó.
07:35 Esse link daqui é parecido com o
07:39 link que eu mostrei agora há pouco, que é
07:41 pras legendas de um vídeo - ele abre o
07:43 vídeo, a página das legendas, no browser.
07:46 esse link aqui ele baixa uma cópia local
07:51 do vídeo... isso às vezes demora um
07:54 pouquinho, porque são, sei lá, 30MB...
07:56 E a partir do momento em que a gente já tem
07:58 uma cópia local tocar a cópia local é muito
07:59 rápido. Então quando eu rodo esse link
08:02 daqui ele começa a tocar esse vídeo
08:06 a partir dessa posição - 10:54.
08:11 Então, voltando... deixa eu voltar aqui
08:15 pro mapa...
08:17 A ideia é que a gente instala o eev
08:21 com a interface estranha que tá
08:22 explicada no vídeo, depois a gente roda
08:26 um comando chamado eev-beginner, e esse
08:28 comando vai abrir pra gente o tutorial
08:30 principal do eev...
08:32 e o tutorial principal ele tem essa
08:35 cara daqui...
08:37 e as pessoas vão poder pular a seção 1,
08:40 que é sobre instalação, vão começar na
08:42 seção 2, e nessa seção 2 elas
08:44 aprendem que o Emacs
08:46 na verdade ele é um ambiente Lisp...
08:49 Lisp é essa linguagem em que as
08:52 expressões são cercadas de parênteses,
08:54 e é sempre o nome do comando e
08:56 depois os argumentos do comando... e aí a
09:00 gente aprende a executar expressões, a
09:02 executar subexpressões, e não sei quê...
09:04 e na seção seguinte a gente aprende a
09:05 lidar com hiperlinks de vários tipos.
09:08 Agora, se a gente tá instalando
09:11 isso pela primeira vez e a gente ainda
09:13 não instalou o browser, a gente só seguiu
09:16 essa parte daqui da instalação,
09:21 tem alguns hiperlinks
09:23 que não vão funcionar nessa seção 3,
09:26 onde eu explico como usar hyperlinks que
09:28 abrem o Google Chrome ou abrem outro
09:30 browser, e se a gente ainda não tiver o
09:33 browser instalado esses links só vão
09:35 funcionar na versão htmlizada da página.
09:38 Repara, isso que eu tou mostrando aqui...
09:41 repara que começa com "Installing eev"...
09:44 é muito parecido com que tá aqui... então
09:47 isso aqui é como a gente acessa esse
09:49 tutorial dentro do Emacs, e isso aqui é a
09:52 versão que a gente acessa dentro do browser.
09:53 Então num primeiro momento
09:56 muitos tipos de links vão funcionar no
09:58 browser e nem todos vão funcionar dentro
10:00 do Emacs - a gente precisa configurar
10:01 algumas coisas pra eles funcionarem...
10:04 por exemplo, a gente precisa
10:06 instalar o Google Chrome, precisa
10:08 configurar o eev pra usar o Google
10:11 Chrome, e precisa depois instalar o MPV,
10:14 que é um player de vídeos.
10:18 Então, pra quem tá começando agora
10:24 se as pessoas se perderem no meio dessas
10:27 instruções e começarem a rodar aquele
10:30 tutorial elas não vão ter rodado esse
10:32 trecho daqui, que usa aquele truque de
10:35 rodar um terminal dentro do próprio Emacs...
10:38 e esses trechos daqui são os trechos
10:41 que instalam um monte de pacotes
10:43 que estão faltando - instalam o Maxima,
10:46 instalam o Google Chrome, coisas assim...
10:48 se elas conseguirem instalar isso beleza,
10:50 um monte de coisas vão funcionar...
10:56 Então, voltando, o lance é que
10:59 tem uma primeira parte das instruções
11:01 que é praticamente linear - as pessoas têm
11:03 que chegar até aqui, e aí elas começam a
11:05 rodar o tutorial, e a partir daí cada
11:07 pessoa começa a querer ir para uma
11:08 direção completamente diferente...
11:10 isso acaba funcionando que nem aqueles
11:14 livros que têm um mapa dos capítulos,
11:17 tipo isso aqui, dizendo que as
11:20 dependências dos Capítulos são tipo essas,
11:22 se você quer seguir esse caminho daqui
11:27 você provavelmente até consegue
11:29 passar direto do Capítulo 5 pro Capítulo
11:31 8 mas talvez você precise desses outros
11:34 capítulos daqui... e sei lá, várias coisas
11:37 assim...
11:40 e basicamente...
11:42 nas últimas semanas eu comecei a dar
11:45 um tutorial de um proof assistant chamado
11:48 Lean, que as pessoas usam pra formalizar
11:51 provas, e é um tutorial também feito
11:54 pra pessoas que nunca usaram nada
11:56 parecido com isso antes, então eu fui
11:58 limpando as instruções de instalação do
12:00 Lean de um jeito muito parecido com as
12:02 instruções de instalação daqui do
12:06 Maxima... e aí com o feedback das pessoas
12:09 eu consegui melhorar muito a documentação
12:11 de algumas partes que as pessoas achavam
12:13 difíceis...
12:15 o Emacs usa algumas teclas estranhas,
12:17 então como é que você faz quando você
12:18 ainda não decorou essas teclas estranhas?
12:21 Um exemplo é o seguinte, aqui... ao invés
12:23 de você decorar as teclas você simplesmente
12:25 lembra que aqui no Emacs se você estiver no
12:31 modo principiante você vai ver essas coisas
12:33 aqui em cima, a menu bar e a tool bar,
12:36 e você pode entrar em submenus daqui e
12:41 ele vai te dizer algumas opções comuns...
12:44 ações comuns e as teclas pra elas, então
12:46 você não precisa decorar as teclas, basta
12:48 você lembrar onde procurar elas aqui...
12:51 e algumas coisas como copiar, cortar e
12:55 colar tem aqui nessa segunda barra
12:57 também...
12:59 Então isso é um truque. O outro truque
13:02 que eu usei é que depois que as pessoas
13:03 aprendem a copiar e colar elas podem
13:07 pegar um determinado uma determinada
13:11 seção que tem um monte de coisas que
13:13 elas deveriam aprender, aqui... e elas
13:17 podem marcar essa coisa daqui e copiar
13:21 pro arquivo de anotações delas...
13:23 o meu arquivo tá cheio de lixo então
13:26 deixa eu copiar para um lugar qualquer...
13:29 bom, e aí a partir daí a gente fica com
13:32 anotações executáveis, em que a gente pode
13:33 deletar as linhas que não interessam mais,
13:35 pode adicionar comentários, pode
13:36 acrescentar links novos e coisas assim...
13:39 o outro truque é que enquanto a
13:42 gente não sabe quase nada o melhor é a
13:44 gente abrir vários links em abas do
13:48 browser... então em cada tab desses a gente
13:50 vai ter um link com informações
13:52 importantes - por exemplo, se a gente
13:53 precisar lembrar das teclas pra copiar
13:55 e colar a gente pode vir pra cá, e se a
13:57 gente precisar lembrar do outro jeito
14:00 de aprender isso ele tá nessa seção 3...
14:03 se a gente precisar das teclas
14:06 que dividem uma janela em duas, ou em
14:09 três, ou desdividem, ou dividem desse
14:16 jeito, ou mudam pra outra janela, ou
14:18 sei, lá coisas assim, a gente pode ver
14:23 esses comandos aqui, e a gente pode
14:24 seguir esses links daqui, que vão pro
14:26 manual do Emacs, que é gigantesco...
14:28 então isso aqui vai pra uma determinada
14:30 seção do manual do Emacs.
14:32 Então, eu tou tentando organizar essa
14:35 coisa daqui pra que as pessoas possam
14:38 seguir vários caminhos diferentes
14:40 sem se perder, e eu tô inventando alguns
14:44 truques novos e fazendo páginas com
14:47 esses truques para principiantes, em que
14:49 eu tou botando um monte de screenshots...
14:52 por exemplo, isso aqui é uma coisa que
14:56 as pessoas têm que aprender bem no início...
14:59 aí eu explico com um pouquinho de texto e
15:00 boto um screenshot...
15:02 e agora eu... eu vi que quando eu
15:07 converso com alguém, quando eu ajudo
15:09 alguém a entender essas coisas e
15:11 eu vou vendo as dúvidas da pessoa eu
15:13 consigo produzir documentação muito
15:15 melhor e muito mais rápido do que se se
15:16 eu tiver que fazer tudo sozinho...
15:18 então, voltando. O convite que eu
15:21 tou fazendo é o seguinte: se vocês acharem
15:24 essa história interessante, se vocês
15:26 acharem que vale a pena aprender Maxima,
15:28 e se vocês acharem que essas instruções
15:29 não estão muito apavorantes, por favor
15:32 falem comigo, e aí eu ajudo vocês
15:34 por, sei lá, WhatsApp, Telegram... e eu
15:37 vou tirando todas as dúvidas e as
15:40 dúvidas de vocês vão me ajudar muito a
15:44 melhorar as próximas versões da
15:46 documentação.
15:48 Então, se vocês acharem isso legal, pelo amor de
15:50 Deus falem comigo, e quando vocês tiverem
15:51 uma hora e pouco livres a gente instala
15:54 isso no computador, vocês já aprendem
15:56 um monte de truques bacanas, e pra
15:59 próxima pessoa isso vai levar menos do
16:01 que uma hora e pouco, talvez leve só uma
16:03 hora, sei lá...
16:05 e ainda tem um outro truque,
16:07 que eu ainda não mostrei e que eu acho
16:09 que é muito bacana, que é o seguinte...
16:11 quando eu executo esse link daqui ele
16:15 abre um arquivo que tá no meu computador
16:17 e ele procura a primeira ocorrência
16:20 dessa coisinha daqui nele... que é o string
16:23 "eev-demo" dentro desses
16:26 double angle brackets verdes daqui.
16:31 Quando as pessoas instalam isso eu
16:34 sugiro que elas façam uma determinada
16:35 configuração que vai fazer essa função
16:38 daqui agir de um jeito diferente...
16:40 ao invés dela abrir um arquivo que tá no
16:42 seu computador ela vai baixar um arquivo
16:45 que tá na rede, que é a cópia
16:48 pública dessas anotações daqui...
16:51 lembrem, são as anotações que criam
16:57 esses diagraminhas...
16:59 elas não vão gravar isso no disco,
17:02 isso vai ficar só na memória, e elas vão
17:04 procurar o bloquinho que tem isso, e aí
17:06 vocês vão poder executar o bloquinho
17:08 mesmo sem ter que fazer uma cópia do
17:09 arquivo.
17:10 E eu tô usando isso muito com os meus
17:13 alunos - quer dizer, com os quatro ou cinco
17:15 alunos que já se interessaram em
17:17 aprender essas coisas - quando eles têm
17:19 alguma dúvida... por exemplo, eles perguntam
17:21 como é que eu crio uma tabela no Maxima,
17:24 que tenham um header e depois
17:27 várias linhas parecidas?...
17:29 eu digo: vá pro lugar tal! E eu mando um link
17:31 tipo esse daqui pra pessoa, possivelmente por
17:34 Telegram, a pessoa copia pro Emacs, executa
17:37 ele, e aí ela vê as minhas anotações...
17:39 Então, a graça é a seguinte...
17:42 repara, aqui eu tou no meio do meu arquivo
17:44 de anotações, em 49% dele, na linha
17:48 8000 e muito dele... esse arquivo
17:51 atualmente tem 18000 linhas.
17:55 Tem alguns tipos de links aqui que eu não
17:59 expliquei, mas vários desses tipos de link vão
18:00 funcionar automaticamente assim que a
18:02 pessoa instala o básico no computador dela.
18:06 Então, por exemplo...
18:10 esse link daqui vai pro manual do Maxima
18:20 na seção que explica a função "depends",
18:23 que eu uso nesse bloquinho daqui...
18:30 E aí com isso as pessoas conseguem
18:31 consultar o manual... e esses links também
18:34 funcionam na na versão htmlizada, mas eu não
18:36 quero mostrar isso agora...
18:39 tem uns links que apontam pra mailing list
18:44 do Maxima, deixa eu ver se se eu encontro
18:47 algum aqui...
18:50 sim! Deixa eu abrir isso aqui, ó...
18:55 isso aqui abre uma mensagem da
18:58 lista de discussão do Maxima no browser...
19:01 aqui tem uma pergunta que eu fiz, e
19:04 a gente pode seguir as respostas das
19:05 pessoas, e coisas assim...
19:08 então, voltando. Eu não consegui usar as
19:16 interfaces padrão do Maxima porque elas
19:18 parecem ser feitas para pessoas que têm
19:20 uma memória incrível, que lêem manuais
19:22 enormes e conseguem decorar tudo... mas
19:25 para mim essa interface funcionou muito
19:27 bem, porque eu consigo guardar links
19:29 pra tudo que me interessa, pra onde
19:31 tem outras anotações sobre uma
19:33 determinada função que eu tô usando,
19:34 pros exemplos, e coisas assim...
19:38 e agora eu tou adaptando isso para isso
19:41 ficar muito fácil de usar. Já tem
19:44 alguns casos de sucesso de pessoas que
19:46 com uma hora e pouco usando isso ficaram
19:48 empolgadíssimas...
19:50 e, gente, por favor, não é 100% garantido
19:52 que vocês vão gostar disso, talvez vocês
19:54 achem a pior coisa do mundo...
19:56 mas se vocês acharem legal por favor
19:58 falem comigo, porque tem bastante
20:00 gente - bastante assim, tipo, sei lá,
20:03 seis ou sete pessoas -
20:05 que instalaram isso, acharam super legal
20:08 e ajudar essas pessoas me ajudou muito.
20:11 Então, o convite é esse: pra vocês
20:13 aprenderem Maxima e para eu conseguir
20:15 melhorar muito a documentação à medida
20:19 que eu ajudo vocês.
20:20 É isso! Tchau!
|