Quick
index
main
eev
eepitch
maths
angg
blogme
dednat6
littlelangs
PURO
(C2,C3,C4,
 λ,ES,
 GA,MD,
 Caepro,
 textos,
 Chapa 1)

emacs
lua
(la)tex
maxima
git
lean4
agda
forth
squeak
icon
tcl
tikz
fvwm
debian
irc
contact

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!