Angel's Egg - the home page of Eduardo Ochs (a.k.a. Edrx)
Welcome! I'm a mathematician, logician,
categorist and type-theorist who used to do computer programming
and Free Software activism in his spare time... I have a Free Software project that I consider extremely important, and I
have decided that I have to spend a few years outside of the
academic world working on day jobs related to Free Software in order
to concentrate better on it and make it as usable and well-known as
The world does need simpler ways to understand Type Theories
and categorical models, true, but it desperately needs to
reduce computer illiteracy and other illiteracies and to realize the
importance of Free Software and Free Information. The Eev Project is
an effort against illiteracies, and it has stayed underground for
far too long; type theory will have to wait.
(I've been doing less maths-related work recently and more activism.
2017: pages with links about the art exhibitions
2015oct26: Falta misandria no movimento trans
(zine: PDF em A5)
2014aug01: Link das ruas - vídeos de manifestações
(An index of videos related to the Brazilian uprisings - currently with 1700+ videos.)
2014aug01: Ydb - the tool that I use to maintain that archive.
2014mar19: Ferramentas para ativistas
(tools for activists - docs mostly in Portuguese at the moment)
2014oct24: Something similar for Facebook posts
2013oct16: Mass arrests in Rio de Janeiro!
(Update: I did spend several years in the "real world", but things
didn't work out there...
I now work at PURO, a small countryside campus in the wild east of the state
of Rio de Janeiro).
2014mai/jun: Sobre a performance "Xereca Satânik"
2013jul10: Parabéns, Edwin!
2013jun27: Debate sobre espaço físico.
Saia do seu quadradinho:
PDF em A5,
2012aug27: primeira versão.
Lista de fontes primárias
de informações sobre a greve das IFES.
sobre os filtros da grande mídia,
Atividades de greve no PURO.
2012may22: Início da greve na UFF.
2011august: Apóiem a ocupação da reitoria!
2011jul01: Pressão social (PDF)
2011jun27: Eleições no PURO: Chapa 1
2011jun08: a campaign: Queremos bolsas da Anvisa de onze mil reais
2011april: a study group on the Psychodynamics of Corruption
2011may25: Material da manifestação de 25/maio/2011
2011mar23-24: Eleições no ICT: vote nulo
eev, that is a tool for automating almost everything,
dednat6, for typesetting
my page on maths and categorical semantics,
BlogMe3, that generates the html
of these pages,
a list of all of my little
gab, a calculator with quantifiers,
RubyForth (by Marc Simpson)
other programs in Lua and
other things related to Emacs,
my pages on Tcl/Tk/Expect,
Icon, and (La)TeX,
my rape recovery journal
(is no longer secret),
how to contact me,
my pages on (micro)politics,
veganism and the
my mother's PhD thesis,
my very old personal pages.
I used to be just in a war against the macho world -
now I am explicitly genderfreaky/TG/TS
(but I'm too busy to change what I see in the mirror)
Between 2004 and 2008 I tried to work as a professional programmer,
but I ended up failing miserably - mostly because I was not
My plan was to earn money to move to London and do the
training on Alexander
Technique at Karen Wentworth's school, but I had to put that on hold.
2005-2006: worked at Vivo.
July-October, 2007: worked full-time on IUP and on
the DaVinci Project.
October-December, 2007: worked on Plurall.
November, 2007: I gave a talk in a round
table about Digital TV, Digital Radio, Free Software and
In December, 2007 I moved to São Paulo (São Caetano, actually)
and started working at Omnisys.
In February, 2008 I was fired.
In April, 2008 I applied to a position at UFF.
I started working there in January, 2009.
The eev project, computer tourism, and related
topics (about making free information easier to use):
I used to call eev a "tool for automating almost everything" and
"my project to save the world with Free Software". In more concrete
terms, eev is a library for Emacs that lets us create executable logs
of what we do in a format that is reasonably easy to read and to
modify, and that lets us "play back" those logs step by step in any
order - for example, like in this video.
The main starting points for eev are:
with lots of links in its git
My presentation at the EmacsConf 2019
EmacsConf2020 the one at the
EmacsConf 2020, that was more technical (more videos).
(find-eev-quick-intro) this sandboxed tutorial that explains
all the main features of eev.
The recommended way to install eev is with M-x list-packages, as in this video (MP4).
(find-emacs-keys-intro) lists the most important keys
of eev and emacs.
(find-eev-intro) is an index to all sandboxed
tutorials, including many obsolete ones.
The main ones are:
If you don't even know how to use M-x
then start by (find-windows-beginner-intro).
Eev is now an ELPA package! Its ELPA page is here.
You can install it from Emacs with
M-x list-packages (even
on M$ Windows!)
and then run the tutorial with
A tutorial for M$ Windows users.
The main tutorial starts
with (semi-obsolete) installation instructions for beginners
(like in this video)
that create a shell script "
~/eev" that starts emacs, loads
eev, and opens the quick intro.
For a totally non-technical introduction to eev, read this.
For non-technical introductions in Portuguese read this and this.
(find-escripts-intro) explains what these "executable
logs" ("e-scripts") are;
its section "3. Sharing"
explains some of the motivation,
its section "4. How to read
an e-script" dissects a small example;
is a much bigger example of an e-script;
its section "5. Tools for
writing e-scripts" discusses how to take (executable) notes.
An e-script is usually made of:
hyperlinks (including `
code for shell-like programs (as shown in
Here are some screencasts:
The last third of my EmacsConf2019 video is a screencast.
(MP4) Como usar o find-here-links-3 (2020apr06, in
(MP4) Sobre rodar programas em terminais
(2020apr07, in portuguese)
(MP4) How to
install eev, for beginners (2016, without sound)
(MP4) How to
install eev, for beginners (2016, without sound)
These two are based on (find-three-main-keys-intro):
(YT, MP4) The three main keys of eev (2019aug09, in english, sound out of sync)
(YT, MP4) The three main keys of eev (2019aug09, in portuguese, sound out of sync)
These ones were made before I implemented the "(find-*-intro)"s:
(YT, MP4) eepitch: a
way to control shell-like programs from Emacs (2013jan16,
(YT, MP4) An introduction to
eev2 (2012nov11, long, not so good)
(YT, MP4) Uma
introdução ao eev2 (2012nov15, in Portuguese,
The YT links point to youtube, where the videos are in a reduced
resolution; the MP4s are better.
The git repository is here: https://github.com/edrx/eev
See (find-eev-install-intro) for alternative ways to
The eev mailing list
(and its archives).
Some information on how blogme3
htmlizes ascii files with elisp hyperlinks.
Some old versions of eev only supported "«...»"s correctly in unibyte buffers;
recent versions of eev are UTF-8 clean. See the comments in eev-codings.el.
The file eev-load.el can be used
as a guide to the source files of eev.
Oficina de Software Livre ("anotações
executáveis") no PURO/UFF.
I'm learning Idris. Here is my eev-ized version of its
This will be an eev-based tutorial on Org
when it grows up: (find-org-intro)
1979 paper about Emacs
by RMS (*),
Lisp Conference speech of 2002.
September 11, 2001 - the inevitable happenned in an oh
so glorious way
If you treat everybody else as an enemy you get an ulcer.
The American ulcer is bleeding (in the form of the falling of the
twin towers), and it is no longer possible to just take a pill,
find something external to blame, and forget about the problem.
(By the way: The seven levels of despair, by John Berger.)
Oh, no - they're destroying another country -
What we need is a world without the United States.
What have you been doing for that?
Notes on Bin Laden's impact (wp, deleted)