| 
     | 
  Oficina de Lean4 - versão 0 - aula 2 (legendas muito incompletas)
  
00:00  
 
 
00:01 Oi gente, eu tou gravando esse vídeo assim
 
00:03 meio emergencialmente pra aula 2 da
 
00:05 oficina de Lean, que vai ser uma aula
 
00:07 estranhíssima, porque muito poucas pessoas
 
00:09 pessoas vão conseguir estar nela no horário...
 
 
00:10 então a gente vai tentar fazer
 
00:12 algumas coisas desse vídeo, e parece que
 
00:14 algumas pessoas vão tentar fazer as coisas
 
00:16 dele depois. Então, lembrem que se eu
 
00:20 executo essa expressão daqui
 
00:22 no meu computador ela vai para meu
 
00:24 arquivo de anotações sobre Lean,
 
00:27 mas no computador de vocês ela tá
 
00:29 configurada para baixar uma cópia da
 
00:33 versão pública desse arquivo, não gravar
 
00:36 ela em lugar nenhum, e mostrar ela
 
00:38 num buffer temporário. O material da aula 2
 
00:41 tá nessa seção daqui, "oficina 0, aula 2"
 
00:45 e aí eu usei como referência
 
00:49 alguns trechos das legendas
 
00:52 pra lembrar exatamente o que que eu
 
00:54 tinha planejado para as aulas 1 e 2.
 
 
00:56 Eu ainda não gravei o vídeo do
 
00:58 exercício grande da aula de hoje, que é fazer
 
01:00 algumas demonstrações não triviais.
 
 
01:04 eu acho que vocês já viram
 
01:07 links que terminam com "hsubs", eles
 
01:09 vão pra versão em HTML das legendas
 
01:13 de um vídeo, e o lsubs é uma coisa que é
 
01:16 mais útil para mim, que vai pra fonte em
 
01:18 Lua dessas legendas que depois eu
 
01:19 converto para montão de outros formatos...
 
 
01:21 e para mim a graça disso é que isso abre
 
01:23 dentro do Emacs.
 
01:28 Então, deixa eu só lembrar para vocês que
 
01:32 todo esse curso é feito para pessoas com
 
01:34 pouquíssima memória, com um buffer mental
 
01:36 pequenininho que nem o meu, então eu
 
01:39 vou sempre mostrar como é que a gente
 
01:41 faz para lembrar o mínimo e reconstruir
 
01:43 o resto a partir do pouquinho que a
 
01:44 gente lembrou.
 
 
01:46 Então o primeiro bloco que a gente vai ver
 
01:48 hoje é o seguinte... eu preciso confirmar
 
01:51 que todo mundo sabe duas teclas básicas,
 
01:53 que eu chamo de "go to" e "go back"...
 
01:55 os nomes oficiais delas são mais complicados.
 
 
01:58 Então a gente vai para esse bloco daqui,
 
02:01 sobre go to e go back, e elas estão
 
02:04 mencionadas em dois trechos do vídeo
 
02:07 sobre a oficina - o vídeo de divulgação,
 
02:09 aquele de, sei lá, 30 minutos ou algo assim,
 
02:12 que eu fiz.
 
 
02:16 O primeiro trecho é esse,
 
02:19 e talvez vocês precisem ver esse trecho
 
02:22 de novo para lembrar como essas teclas
 
02:24 funcionam...
 
 
02:28 e no (find-lean4-intro), que tem as instruções
 
02:31 pra instalar o Lean e as instruções muito
 
02:33 básicas de como testar ele, a seção 3
 
02:36 se chama "Test the five manuals", e no
 
02:40 final dela tem um manual que tá num
 
02:42 formato muito antigo, que foi gerado com
 
02:44 com ferramentas que as pessoas não tão
 
02:48 mais usando, que é o "Lean Reference", e
 
02:52 algumas teclas que a gente vai usar
 
02:53 estão explicadas aqui, nesse link daqui, ó,
 
02:56 nessa URL.
 
 
02:58 Então, voltando... isso aqui
 
03:02 aponta para esse trechinho onde estão os
 
03:03 links pro Lean Reference,
 
03:06 e esses dois links não vão funcionar no
 
03:09 no computador de vocês...
 
 
03:11 a seção que nos interessa é essa
 
03:15 daqui, então se vocês quiserem ler a
 
03:17 documentação original sigam esse link
 
03:20 daqui, e ele vai explicar um montão de
 
03:21 coisas interessantes e um montão de
 
03:22 coisas que não nos interessam...
 
 
03:24 e se vocês avançarem alguns
 
03:28 parágrafos vocês vão ver que ele fala
 
03:30 sobre o `M-.' e o `M-,', que
 
03:33 são o go to e o go back. Então, deixa eu
 
03:37 voltar para cá...
 
 
03:39 como é que a gente faz para descobrir
 
03:41 o que que essas teclas fazem?
 
 
03:43 É o seguinte. Essas teclas são
 
03:47 teclas globais que estão
 
03:48 definidas em todos os modos do Emacs,
 
03:53 e no tutorial principal do eev, que é
 
03:57 esse daqui, a seção 4, ela...
 
04:02 peraí, deixa eu lembrar se é a seção 4...
 
 
04:10 Sim. Ela explica um jeito de gerar
 
04:12 muitos hiperlinks sobre uma determinada
 
04:15 função ou sobre uma determinada tecla.
 
04:17 Ela começa dizendo que se você executar
 
04:19 essa expressão daqui você vai pra um
 
04:21 buffer temporário com montão de links
 
04:23 sobre o find-file... mas uma coisa que é
 
04:26 super importante é esse link daqui.
 
04:26 Se você lembrar essa sequência de
 
04:30 teclas daqui você consegue help sobre
 
04:32 qualquer função, nesse formato daqui...
 
 
04:34 Então, se eu bater M-h M-f em cima
 
04:39 do nome dessa função, find-file, ele vai
 
04:41 pedir pra eu confirmar que eu quero
 
04:44 help sobre essa função daqui, se eu
 
04:46 confirmar eu vou para um buffer que
 
04:47 coincidentemente era exatamente o que eu
 
04:49 já tinha gerado, e se eu rodar essa
 
04:53 expressão daqui eu vou pro help
 
04:56 tradicional sobre o find-file, que tem
 
04:58 hiperlinks no sentido tradicional,
 
05:01 que você clica neles e coisas assim, mas
 
05:03 que você não consegue ver o
 
05:04 código fonte deles.
 
 
05:05 Às vezes a gente vai querer seguir esse
 
05:07 hiperlink daqui, `find-efunction', que
 
05:10 vai pro código fonte do find-file, e em
 
05:13 alguns casos... daqui a pouco eu vou
 
05:14 mostrar casos assim. Então, deixa eu
 
05:17 voltar...
 
 
05:19 então: M-h M-f vai pra links sobre uma função
 
05:23 e M-h M-k vai pra links sobre uma tecla...
 
05:26 então se eu quiser mais informações sobre
 
05:31 o `M-.' e o `M-', que são go to e go back,
 
05:34 eu posso rodar essas expressões daqui...
 
05:38 lembrem que o eek
 
05:42 é um hiperlink pra ação de uma
 
05:44 sequência de teclas,
 
05:45 então ele faz a mesma coisa que
 
05:47 se eu batesse isso aqui na mão, e isso aqui
 
05:49 é um bom modo da gente lembrar uma
 
05:51 sequência de teclas que a gente quer
 
05:52 usar depois... e ele trata isso aqui como
 
05:55 um comentário, e esse comentário tem o
 
05:57 nome da função. Então se eu executar isso
 
05:59 aqui eu consigo um bocado de help sobre
 
06:01 essa função daqui, e se eu por acaso
 
06:04 quiser ver o código fonte eu posso ir ou
 
06:07 pra cá, que tem o o comentário de como é
 
06:09 que ela funciona - o "docstring" dela -
 
06:13 ou pra cá...
 
 
06:14 e aí eu vou pro arquivo onde ela tá
 
06:17 definida, que é um arquivo grandão
 
06:19 chamado xref.el, etc...
 
 
06:26 Deixa eu seguir esse link daqui.
 
06:30 Lembrem que no tutorial... quer dizer, no
 
06:33 intro sobre Lean4, a seção 8 pedia pra
 
06:36 vocês testarem isso daqui...
 
 
06:38 eu vou ter que reduzir a fonte...
 
 
06:39 e esse link daqui vai
 
06:41 pro código fonte do Lean... de um dos
 
06:45 arquivos da biblioteca básica do Lean...
 
 
06:47 o nome, `find-lean4prefile', não é muito bom...
 
06:50 eu tô chamando esses links de "preamble"
 
06:55 baseado em como as coisas são
 
06:57 no Haskell, em que as bibliotecas
 
06:59 básicas se chamam "Preamble", mas no Lean
 
07:01 isso tá meio errado... mas eu mantive
 
07:03 o nome errado por motivos históricos -
 
07:06 eu não tive tempo de consertar isso.
 
 
07:08 Então, se eu seguir esse link daqui
 
07:10 ele vai para um arquivo em Lean...
 
07:15 e Lean leva um tempinho para processar
 
07:18 esse arquivo, pra conseguir criar
 
07:22 links em alguns pontos dele e
 
07:25 coisas assim... e aqui eu posso testar
 
07:27 o `M-.', que é o "go to", e o `M-,',
 
07:32 que é o "go back"... então, por exemplo,
 
07:34 se eu quiser saber mais sobre a classe
 
07:36 Inhabited eu uso a tecla de "go to" aqui,
 
07:39 que é `M-.', e ele vai pra um
 
07:42 outro arquivo...
 
 
07:44 e se eu bater M-, eu volto para cá.
 
 
07:47 Então testem isso, tá...
 
07:49 isso é uma das primeiras coisas que eu
 
07:51 quero que vocês testem.
 
 
07:55 Agora o segundo bloquinho.
 
 
08:00 Eu não sei se vocês lembram disso, mas se
 
08:02 a gente bater `M-x l' a gente vai pra
 
08:05 esse arquivo de anotações de Lean.
 
 
08:07 Então nesse momento se eu bater `M-x l' isso
 
08:09 não faz nada porque eu já tou nesse arquivo.
 
 
08:11 No computador de vocês o Emacs vai pra
 
08:13 uma cópia temporária desse arquivo,
 
08:17 no meu ele vai pro arquivo em si...
 
 
08:25 Aqui tem um link que tá errado, caramba...
 
08:28 eu devia ter posto isso num outro bloco...
 
08:32 ah, não, não - tá certo.
 
 
08:34 Então, eu contei para vocês que `M-x l'
 
08:37 vem para cá, e eu não lembro se vocês
 
08:40 já testaram o `M-x a', que também faz
 
08:42 uma coisa parecida...
 
 
08:44 Então, agora há pouco a gente tava
 
08:47 vendo o `M-h M-k', que vai pro help
 
08:50 sobre uma tecla - `k' é de `key'...
 
 
08:53 e agora a gente vai ver `M-h M-f',
 
08:55 que vai pro help sobre uma função.
 
 
08:57 Aqui a gente tem uma função com um nome
 
08:58 muito curto - `l'. Como é que a gente
 
09:00 consegue mais informação sobre ela?
 
 
09:02 A gente pode bater `M-h M-h l ENTER',
 
09:05 E aí ele abre esse buffer aqui,
 
09:10 com montão de links sobre a função `l',
 
 
09:12 ou a gente pode seguir isso aqui,
 
09:14 que é um link pro efeito de bater
 
09:17 `M-h M-f l'...
 
 
09:20 E aí nesse caso isso é uma função que
 
09:22 não tem uma descrição - ela não tá
 
09:24 documentada... então é melhor a gente ir
 
09:26 para cá e ver o código fonte dela. Ela é
 
09:28 uma função muito curta, ó - é uma função
 
09:30 que tem uma linha só, é isso aqui...
 
 
09:34 e ela vai pro arquivo de anotações sobre Lean.
 
09:37 a mesma coisa pro a - e um dos links aqui
 
09:39 vai pro código fonte dela - é esse...
 
 
09:44 e o `a' ele garante que esse
 
09:48 diretório existe - /tmp/L/ - 
 
09:50 e ele abre o arquivo /tmp/L/a.lean.
 
09:57 Tá? Isso vai ser importante depois.
 
 
10:00 Nesse momento o a.lean... bom, eu
 
10:04 tou usando esse a.lean como um arquivo
 
10:06 temporário, e aqui tem umas coisas que eu
 
10:08 botei nele agora há pouco, num dos testes.
 
 
10:19 Outra coisa que pode ser útil para
 
10:21 algumas pessoas é a seguinte... algumas
 
10:23 pessoas vão precisar definir sequências
 
10:25 novas de teclas - o Halian precisou
 
10:28 disso porque o F8 pra ele já tava
 
10:30 definido de um outro jeito...
 
 
10:32 nas minhas anotações sobre MacOS, OSX,
 
10:33 ou whatever, como as pessoas queiram chamar...
 
10:38 tem uma seção sobre o arquivo de
 
10:41 configuração que eu criei pro Halian - que
 
10:43 a gente criou juntos... e tem esse
 
10:47 trechinho no arquivo de anotações dele...
 
 
10:49 ele precisou definir o `C-RET',
 
10:53 `C-Return', como a função que tava
 
10:55 associada ao F8...
 
 
10:57 Então esse comando daqui define
 
10:59 que o `C-Return' faz isso aqui,
 
11:01 e essa linha daqui foi gerada
 
11:04 por essa linha daqui, find-esetkey-links,
 
11:07 que gera esse buffer temporário...
 
 
11:10 E eu escolhi mandar isso aqui pro Halian.
 
 
11:15  
 
 
   |