Oficina: Introdução ao Software Livre
Update (2022): a oficina deu errado mas um dos vídeos
que eu fiz pra ela ficou muito bom. Ele se chama "Como instalar o eev no Emacs" e você pode asistir
ele no Youtube clicando no screenshot abaixo:
Eu legendei ele, e se você não gostar de assistir coisas no Youtube
você pode baixá-lo com os dois "wget"s abaixo.
e usar o mpv pra assistí-lo em velocidade super-rápida com estas teclas aqui. Ah, e às vezes o youtube converte os meus
vídeos pra um formato meio borrado, então a versão em .mp4 do vídeo é
beeeem melhor.
Update (2021): a oficina aconteceu no
sábado, 6/nov/2021, das 15:00 às 18:00, e foi toda por Telegram. Se
você quiser participar da próxima encarnação dela basta se inscrever
neste grupo do Telegram,
chamado "Introdução ao Emacs e eev (6/nov/2021)", e mandar um oi pra
mim - eu sou o @eduardoochs no Telegram. A oficina é aberta a todos os
interessados de todos os níveis. Convide os seus amigos! =)
Título (provisório): Introdução ao Software Livre
Descrição (provisória):
Todo mundo sabe que os programas - como Excel, Python e R - que
processam dados e geram tabelas, estatísticas e gráficos estão se
tornando cada vez mais importantes, e que, aham, "todo mundo vai ter
que aprender a usá-los"... mas como aprendê-los?
Acho que todo mundo já deve ter passado por situações como a que eu
vou descrever agora. Digamos que a gente vê um gráfico muito legal que
um amigo nosso fez e pôs num trabalho dele, e a gente pergunta pra
esse amigo como a gente faz pra aprender a fazer gráficos daqueles...
e ele diz: "Fiz com Python e MatPlotLib! É super fácil, tem um monte
de tutoriais na internet!" - e aí a gente passa um fim de semana
inteiro tentando aprender Python e MatPlotLib a partir dos tutoriais
da internet mas não progride quase nada, e a gente pede ajuda pra mais
pessoas e elas todas respondem "é super fácil, usa os programas tais e
tais, tem tutoriais na internet!" - E SAEM CORRENDO. Ninguém dá
detalhes, todo mundo diz que é fácil, e a gente se sente burro.
O mundo do Software Livre é muito amplo e eu há muitos anos passo boa
parte do meu tempo livre socializando em cantos dele que as pessoas
"normais" nem desconfiam que existem, e onde o modo das pessoas se
ajudarem é totalmente diferente do que eu descrevi agora há pouco.
Isto aqui é uma boa introdução a como são as coisas lá:
Uma das idéias básicas do Software Livre é a de desmistificar a
distinção entre "programadores" e "usuários". No mundo do software
comercial os "programas" são produtos acabados, que parecem meio
mágicos - indústrias podem fazer coisas como aquelas, não seres
humanos comuns ("programadores" e "nerds" podem ser capazes de fazer
programas - "mas eles não são como nós"). No mundo do software livre
os programas são como os fuscas costumavam ser - se o seu fusca
desse um problema na estrada daqui a pouco alguém parava pra te
ajudar (muita gente entendia de mecânica de fusca), e num
instante a pessoa fazia um consertinho sem nem precisar de peças, te
explicava tudo, e você ainda saía sabendo um pouco mais sobre o seu
carro.
A comunidade de Software Livre brasileira perdeu a noção da
importância do "faça você mesmo" - a noção do que é importante
se confundiu com a do que pode ser notícia em jornais e sites e
blogs, então as pessoas acham que o que "falta ser feito" pro
Software Livre se tornar popular são coisas monumentais, como por
exemplo o Gimp (um programa livre) se tornar tão poderoso quanto o
Photoshop. Você ajudar o seu vizinho a resolver um problema
aparentemente complicado fazendo um script de duas linhas é algo que
se tornou invisível.
Nesta oficina nós vamos ver na prática como isto funciona, usando só
dois programas que são fáceis de instalar em qualquer computador: o
Emacs e uma extensão pra ele chamada eev. O Emacs é um editor de texto
programável e extensível; na década de 80 era muito comum os usuários
do Emacs - inclusive "secretárias que se achavam incapazes programar";
veja o relato no link (1) - fazerem programas muito úteis de uma ou
duas linhas que acabavam sendo compartilhados com os colegas, e as
principais idéias do movimento do Software Livre surgiram na
comunidade dos usuários de Emacs.
Esta oficina corresponde mais ou menos às duas primeiras aulas de um
projeto de ensino chamado "Introdução ao Software Livre: Python,
shell, Lua, Emacs, eev" - que eu estou preparando e que deve começar
daqui a alguns meses, mas muita coisa nele depende de Linux e só as
pessoas que têm Linux vão conseguir acompanhar as aulas dele... esta
oficina é uma versão adaptada dele só com coisas que funcionam tanto
no Linux quando no Windows e que devem fazer sentido pra pessoas que
nunca viram uma linguagem de programação na vida.
Uma observação muito importante: nesta oficina você provavelmente não
vai aprender NADA de "útil", ou melhor, você provavelmente não vai
aprender nada que se encaixe na noção que você já tem do que é um
programa "útil" - mas você vai começar a entender a noção de "programa
útil" dos programadores. É neste sentido, de "útil para
programadores", que nós vamos ver como fazer programas muito pequenos
"úteis" e como compartilhá-los com as outras pessoas da oficina por
Telegram ou IRC. No projeto de ensino nós vamos ver como usar estes
programas pequenos pra aprender Python, Linux, e shell.
É neste sentido, de "útil para programadores", que nós vamos ver
como fazer programas muito pequenos "úteis" e como compartilhá-los com
as outras pessoas da oficina por Telegram ou IRC. No projeto de ensino
nós vamos ver como usar estes programas pequenos pra aprender Python,
Linux, e shell.
Para mais detalhes veja o vídeo de 5 minutos (obs: que ainda
não existe!) - ou o vídeo de 1h20 de duração - no link (2).
(1) http://www.gnu.org/software/emacs/emacs-paper.html#SEC29
(2) http://angg.twu.net/2021.1-projeto.html
1. Pré-requisitos
Os pré-requisitos são esses aqui: um computador com 1) Windows ou
Linux, 2) Google Chrome ou Firefox, 3) Telegram, 4) Emacs. Se você
estiver no Windows instale o "Emacs 28 pretest" daqui; se você estiver no Linux basta instalar o Emacs default da sua
distribuição. Além disso: 5) assista este vídeo e
pelo menos tente instalar o eev seguindo as instruções
dele. Tem um índice pra esse vídeo aqui.
Além disso você vai precisar a) conseguir lidar com um canal de
Telegram em que um monte de pessoas de níveis totalmente diferentes
vão estar falando ao mesmo tempo, b) conseguir lidar com algo que tem
informações demais. É parecido com bibliotecas e com carros: você já
aprendeu a entrar numa biblioteca sem entrar em pânico e dizer "ai meu
deus, eu vou precisar ler tudo isso?", e você já aprendeu a olhar pra
um carro com o capô aberto sem achar que na próxima meia hora você VAI
TER QUE montar um radiador com as próprias mãos. Com o Emacs vai ser a
mesma coisa.
Ah, praticamente todo o material que existe sobre o Emacs está em
inglês, e você vai que lidar com isso também. Se você procurar no Emacs Weekly News você vai encontrar um monte de tutoriais
de Emacs, inclusive alguns em português, mas até onde eu
sei eu sou a única pessoa que está fazendo tutoriais que começam pelo
Emacs Lisp.
2. Estrutura da oficina
A estrutura da oficina vai ser mais ou menos essa aqui. Os
itens básicos são estes:
Os itens menos básicos são estes:
3. O que eu achei
Na verdade eu fiquei meio frustrado, porque 1) vieram poucas
pessoas e 2) porque ninguém deu muita bola pra coisa que eu
considerava que era o objetivo mais importante da oficina, que era aprender a criar links pra tudo que você encontra de interessante e
guardar esses links no seu arquivo ~/TODO. Mas aí eu me toquei de que
eu preciso organizar melhor o material que eu já tenho sobre como
criar e guardar links, e que eu preciso fazer um vídeo sobre isso... e
o vídeo precisa ter partes em que eu mostro como executar os exemplos
de certas seções difíceis dos tutoriais e precisa ter um monte de
exercícios organizados por ordem de quantidade de pré-requisitos...
O "material que eu já tenho sobre isso" está principalmente aqui:
(find-eev-quick-intro "4. Creating Elisp Hyperlinks")
(find-eev-quick-intro "4.1. `find-here-links'")
(find-eev-quick-intro "4.2. `find-ekey-links' and friends")
(find-eev-quick-intro "9. Shorter hyperlinks")
(find-audiovideo-intro "2. `eev-avadj-mode'")
(find-audiovideo-intro "4.1. `find-extra-file-links'" "M-h M-e")
(find-here-links-intro "3. `find-here-links'")
(find-here-links-intro "3. `find-here-links'" "beginners")
(find-pdf-like-intro "3. Hyperlinks to PDF files")
(find-escripts-intro "6. Tutorials")
(find-escripts-intro "7. Sequences of links")
4. O que eu fiz logo depois
Nos dias seguintes ao dia da oficina eu reescrevi quase todo o
código que implementa o suporte aos blocos de "[Video links:]",
escrevi toda a documentação da implementação nova, reescrevi metade do
tutorial sobre como rodar o Emacs e o eev no Windows, e fiz um segundo
vídeo. Links:
(find-video-links-intro "1. Introduction")
(find-video-links-intro "2. From the HTML")
(find-video-links-intro "3. `find-youtube-video'")
(find-video-links-intro "4. Configuring the browser")
(find-video-links-intro "5. Local copies")
(find-video-links-intro "6. Configuring Mpv")
(find-video-links-intro "7. `find-eev-video'")
(find-video-links-intro "8. Windows")
(find-video-links-intro "9. First-class videos")
(find-video-links-intro "10. Second-class videos")
(find-video-links-intro "11. Hardcoded paths")
(find-windows-beginner-intro "0. Introduction")
(find-windows-beginner-intro "1. Download and install Emacs")
(find-windows-beginner-intro "2. Key sequences and how to quit")
(find-windows-beginner-intro "3. Using M-x and installing eev")
(find-windows-beginner-intro "4. Understanding buffers and the mode line")
(find-windows-beginner-intro "5. More on modes")
(find-windows-beginner-intro "5.1. Eev mode")
(find-windows-beginner-intro "5.2. Help Mode")
(find-windows-beginner-intro "5.3. Info Mode")
(find-windows-beginner-intro "5.4. Dired Mode")
(find-windows-beginner-intro "5.5. Shell Mode")
(find-windows-beginner-intro "5.6. Eshell")
(find-windows-beginner-intro "6. Video links")
(find-windows-beginner-intro "7. eev-on-windows.el")
(find-windows-beginner-intro "7.1. `ee-use-windows'")
(find-windows-beginner-intro "7.2. Testing wget.exe")
(find-windows-beginner-intro "7.3. Lua")
(find-windows-beginner-intro "7.4. Downloading videos")
(find-windows-beginner-intro "7.5. Downloading PDFs")
(find-windows-beginner-intro "7.6. Saving your settings")
(find-windows-beginner-intro "7.7. Testing your settings")
(find-windows-beginner-intro "7.8. Saving your settings to your ~/.emacs")
(find-windows-beginner-intro "8. Summary")
http://angg.twu.net/eev-videos/2021-oficina-2.mp4
Eu recomendo pras pessoas que usam GNU/Linux que elas comecem pelo
(find-eev-quick-intro) e só leiam o (find-video-links-intro) depois de terem lido vários tutoriais mais
básicos, mas pras pessoas que usam M$ Windows a ordem é diferente: eu
recomendo que elas comecem pelo (find-windows-beginner-intro),
que em várias seções aponta pra outros tutoriais como pré-requisitos
pra aquela seção.
Se alguém quiser assistir um vídeo longo que eu preparei pra um minicurso os links são este pro
vídeo em MP4 e este pro
vídeo no Youtube. O MP4 tem menos megabytes e uma qualidade melhor -
quando eu subo vídeos em MP4 pro Youtube ele converte eles pra um
formato pior.
Tem coisas em inglês sobre a oficina aqui.
A primeira imagem abaixo é um link pro vídeo (de 1h20) sobre o
minicurso; a segunda é um link pro vídeo com as instruções mais
básicas (tem um índice pra ele aqui); a segunda é um link pra um vídeo com
exercícios básicos de criar e guardar links; e quarta é um link pros
slides da minha apresentação na EmacsConf2021.
Link pra uma oficina que eu organizei em 2019, chamada
"Oficina de Software Livre ("anotações executáveis") no PURO/UFF".
|