CURRICULUM VITAE

Dados pessoais:

Nome completo:	Eduardo Nahum Ochs

Data de nascimento:	7 de fevereiro de 1971

Nacionalidade:	brasileira

Sexo:	masculino

Estado civil:	solteiro

Identidade:	04844873-2 IFP-RJ

CPF:	021441927/40

Telefone:	(21)2540-9757

(21)2540-9870

E-mail:	edrx@mat.puc-rio.br

Home page:	http://angg.twu.net/

Endereço:	R. Jardim Botânico 622/103B - Jardim Botânico

Rio de Janeiro, RJ, Brasil

CEP 22461-000

Formação:

Doutorado em Matemática Aplicada pela PUC-Rio, concluído em agosto de

2003; o doutorado incluiu uma estadia-sanduíche de oito meses - de

janeiro a agosto de 2002 - na universidade McGill, em Montreal (Canadá).

Mestrado em Matemática Aplicada pela PUC-Rio, concluído em abril de

1999.

Bacharelado em Matemática pela Pontifícia Universidade Católica do Rio

de Janeiro (``PUC-Rio´´), concluído em agosto de 1996.

Do 2º ano do 1º grau até o 3º ano do 2º grau no Instituto Metodista

Bennett, Flamengo, Rio de Janeiro.

Línguas estrangeiras:

Fluente em Inglês.

Ótima compreensão de Francês e Espanhol falados e escritos.

Experiência didática:

Professor substituto da UERJ/FEBF (Duque de Caxias/RJ) durante o

primeiro e o segundo semestres de 2004. Cursos ministrados (todos para

turmas de graduação):

No primeiro semestre (abril a agosto de 2004):

• Fundamentos da Computação (para Licenciatura em Matemática)

• Geometria Analítica (idem)

• Estatística aplicada à Pesquisa Educacional (para Pedagogia)

No segundo semestre (setembro a dezembro de 2004):

• Fundamentos da Matemática (para Pedagogia)

• Tendências Atuais do Ensino de Ciências (para o curso de Formação de

Professores do Ensino Fundamental)

Outros cursos ministrados:

Minicurso de 12 horas sobre programação na linguagem Lua - no evento

"HackerUnion 2", organizado pela GNU Solutions, setembro de 2004.

Local: Faculdades ESEEI, Curitiba.

Apresentações e publicações:

``Debian e Software Livre'' – Apresentação no “Dia D”, evento

organizado pelo grupo Debian-RJ, em 21 de agosto de 2004.

``O que é o esqueleto de uma demonstração?´´ - Tese de Doutorado,

agosto de 2003.

Apresentações feitas durante a bolsa-sanduíche, todas com o título ``A

System of Natural Deduction for Categories´´:

● No encontro ``CMS Summer Meeting 2002´´, em 17 de junho de 2002.

● No encontro ``FMCS 2002´´, em 8 de junho de 2002.

● No seminário de Lógica da Universidade de Ottawa, em fevereiro de

2002.

● No seminário de Categorias da Universidade McGill, em janeiro de

2002.

``A system of natural deduction for categories´´ - apresentado no

encontro ``Natural Deduction Rio 2001´´, ocorrido entre 2 e 6 de julho

de 2001 na PUC-Rio.

`` `SetC is a topos' has a syntactical proof´´ - apresentação no

seminário de Lógica e Categorias do Centro de Lógica e Epistemologia

da UNICAMP, em 25 de abril de 2001.

``Análise não-standard com filtros´´ - apresentação no Encontro de

Lógica da UFF, em 24 de fevereiro de 2000.

``Categorias, filtros e infinitesimais naturais´´ - Tese de Mestrado,

abril de 1999.

Experiência com computadores:

Fluente nas seguintes linguagens de programação: Emacs Lisp, Lua,

Tcl/Tk/Expect, Icon, C, shell scripts (Bash/Zsh), AWK, TeX e LaTeX.

Ótimo conhecimento das seguintes linguagens, sistemas, protocolos e

ferramentas: HTML básico, Debian, makefiles, TeXinfo, Forth, GDB,

CGIs. Conhecimentos razoáveis de PHP e Perl. Noções de Python,

SmallTalk, SQL e PostScript.

Autor do pacote `eev´ para o editor de texto Emacs; o Emacs é um dos

dois editores de texto considerados principais em sistemas *NIX. Uma

resenha sobre o eev foi publicada no número 13 da revista eletrônica

``Brave Gnu World´´, em 1999.

Alguma experiência com MS-DOS e Microsoft Windows.

Usuário de GNU/Linux desde 1994.

Trabalhos como programador profissional:

De junho/1998 a janeiro/1999: programação de CGIs em Perl. Empresa:

Bowne Internet, Rio de Janeiro.

De setembro/2000 a novembro/2000: programação de CGIs em PHP. Empresa:

Canvas Webhouse, Rio de Janeiro.

De dezembro/2004 ao presente: programação de uma jukebox em Linux

(sistema embarcado, controlado por apenas 6 botões). Cliente

particular, Rio de Janeiro.

Principais projetos de Software Livre:

• Eev - "uma ferramenta para automatizar quase tudo", implementada como uma extensão em Emacs Lisp para o editor de texto GNU Emacs, com ferramentas auxiliares escritas em Tcl/Expect, Shell e Awk. Uma resenha sobre o eev foi publicada no número 13 da revista eletrônica "Brave GNU World", em 1999. Atualmente (janeiro de 2005) o eev está no meio do processo para se tornar um projeto oficial da GNU; ele já foi aceito pela GNU e os detalhes legais já foram resolvidos, mas ainda faltam algumas padronizações e o aceite final. Links principais:

http://angg.twu.net/eev-current/README.html

http://angg.twu.net/eev-current/

(Observação: a página na internet é quase toda em Inglês, mas há um resumo em português do eev na próxima página).

• Várias mini-linguagens para geração de diagramas para serem incluídos em textos matemáticos escritos em LaTeX. Os programas que interpretam estas linguagens de diagramas e geram código LaTeX tiveram várias implementações, em várias linguagens diferentes: em Icon (1997/98), em Icon e Tcl/Tk (1998-2002), e em Lua (2003-).

• Uma mini-linguagem para geração de código HTML, escrita em Tcl. Todo o código em HTML da minha página na internet - http://angg.twu.net/ - é gerado usando esta linguagem, e isto desde 1999. Este programa está sendo modernizado e reescrito em Lua, mas a versão em Lua ainda não está funcional.

• Uma mini-distribuição de Debian voltada para pessoas que querem entender como o sistema funciona e fazer as próprias mini-distribuições. Este projeto está em andamento: o sistema já gera um CD que é ao mesmo tempo um "livecd" e um CD de instalação, e ambos funcionam - mas seria de se esperar que a partir de um sistema instalado por este CD seria possível produzir uma versão modificada do próprio CD, e por enquanto o sistema sempre acaba precisando de pacotes extras que ainda não estão sendo incluídos no CD. Observação: os scripts deste projeto que já estão funcionais estão sendo distribuídas junto com o eev, como exemplos de "e-scripts" (veja a descrição do eev).

Uma descrição mais detalhada do projeto eev

O eev é uma biblioteca para o Emacs que faz com que o Emacs suporte "e-scripts". E-scripts são arquivos de "anotações executáveis" sobre como fazer determinadas tarefas no computador.

Um e-script é tipicamente um arquivo de texto no qual alguns pedacos estão em "linguagens humanas", como Português ou Inglês, e outros pedaços são trechos de código em várias linguagens de computador, ou sequências de comandos para vários programas.

Vários programas interativos - por exemplo shells e certas linguagens de programação - mantêm um histórico dos ultimos comandos recebidos, e permitem que o usuário edite estes comandos e os execute de novo, com ou sem alterações; às vezes estes programas até contêm pequenos editores de texto embutidos. A idéia do eev é não nos restringirmos somente a estas ferramentas simplificadas de edição de comandos – que ainda por cima são diferentes de programa a programa. Com o eev o Emacs passa a poder ser utilizado como um "editor universal de comandos" - os e-scripts são como se fossem históricos globais de comandos dados para o sistema, mas podendo ser editados como arquivos

de texto comuns, podendo conter todo tipo de comentário e de hiperlink, e podendo conter comandos para vários programas e linguagens.

Não existe nenhum modo de executar um e-script inteiro de uma vez só. Ao invés disso existem modos de selecionar e executar trechos de um e-script interativamente: o usuário seleciona a parte a executar (pode ser a linha em que o cursor está, a "região" selecionada pelo Emacs, ou tudo ao redor do cursor até a primeira ocorrência para a frente e para trás de certos delimitadores, etc) e aí pede que esse trecho seja interpretado como código Lisp e executado imediatemente pelo Emacs, ou que o trecho seja gravado num script temporário que depois vai ser lido por um shell, ou que seja mandado imediatamente para um programa interativo com o Emacs estabeleceu um canal de comunicação, etc.

Os "hiperlinks" em e-scripts são simplesmente blocos executáveis, em geral ocupando uma linha só ou parte de uma linha, que quando são executados tem uma ação correspondente à de seguir um hiperlink. Um exemplo:

# (find-node "(make)Automatic" "$^")

quando o Emacs executa essa expressão entre parênteses (essa expressão e' um comando em Emacs Lisp) ele abre a página intitulada "Automatic" do manual do GNU Make e leva o cursor para logo depois da primeira ocorrência do string "$^" no texto.

Repare que este tipo de hiperlink pode aparecer no meio de blocos de código pra praticamente qualquer programa ou linguagem - já que quase todos os programas num sistema *NIX aceita "comentários". Por exemplo, em shell scripts todas as linhas começadas com "#" são tratadas como comentários e ignoradas.

6

2004-03-10T04:33:41