Fim de férias, novos livros

April 18th, 2003 § 4 comments § permalink

Minhas férias estão acabando. Na próxima terça a rotina recomeça. Mas foi bom tirar esses dias para clarear a cabeça. Comer, dormir e ler fazem bem algumas vezes. :)

Minha esposa e eu aproveitamos o dia para sair e acabamos entrando no sebo. O resultado foi fatal: seis livros. Leitura para um bom tempo. Os livros comprados foram:

  • Simulacron-3, de Daniel F. Galouye. É o livro que deu origem ao filme O 13º Andar. Eu procurava esse livro desde que vi o filme pela primeira vez. Impossível deixar passar.
  • O Fim da Infância, de Arthur C. Clarke. Um dos maiores clássicos da ficção científica. Não deu para resistir pelo preço e o excelente estado de conservação.
  • Um Cântico para Leibowitz, de Walter M. Miller. Outro dos clássicos de ficção científica. Também não deu para resistir.
  • O Dia do Curinga, de Jostein Gaarder. O primeiro livro do autor que leio, mas vem bem recomendado por outros sucessos dele.
  • A Ilha do Dia Anterior, de Umberto Eco. Recomendado por um amigo, que descreveu uma história bem interessante.
  • O Cemitério, de Stephen King. Um dos clássicos desse mestre do terror. Minha esposa escolheu, mas eu também gosto muito do autor e não tinha lido esse ainda.

As resenhas vêm depois, como de costume.

Reflexões

April 14th, 2003 § 2 comments § permalink

O título é sério, mas o assunto não. :) No espírito das minhas férias e do nome do meu blog, eu lhes mostro Reflections, um divertido joguinho Flash.

Mudanças no site

April 12th, 2003 § 7 comments § permalink

Fiz algumas mudanças no site.

A maior de todas é, obviamente o layout. Fazia tempo que eu queria mudar, mas não tinha animado devido à necessidade de alterar todos os templates do site. O novo layout é CSS puro e deve funcionar sem problemas em qualquer navegador. Eu ainda só testei no Mozilla 1.3 e Internet Explorer 5.5, mas vou verificar em mais um punhado nos próximos dias. De qualquer forma, espere problemas enquanto eu corrijo os detalhes de implementação, principalmente nas páginas internas. Outro detalhe: o novo layout usa recursos de CSS 3 e assim possui uma série de melhorias em navegadores que suportam essa especificação, como o Mozilla. Nos outros navegadores a apresentação é um pouco inferior, mas sem perder no aspecto geral.

A outra mudança é nos feeds RSS, que agora mostram apenas as últimas cinco entradas. Isso reflete melhor os meus hábitos no blog. Além disso, os feeds agora mostram o texto completo da entrada nos agregadores que suportam essa característica.

É isso.

Problemas

April 11th, 2003 § Comments Off on Problemas § permalink

A título de esclarecimento, a indisponibilidade deste blog nos últimos dias foi causada por um problema no servidor em que o mesmo está hospedado. A placa-mãe e o HD do mesmo tiveram que ser substituídos e, como o backup é semanal, nem todas as informações voltaram. Eu vou tentar restaurar o que foi perdido a partir do que tenho guardado.

Peço desculpas pelo transtorno.

O Livro dos Códigos

April 4th, 2003 § 3 comments § permalink

O Livro dos Códigos, de Simon Singh, é um fascinante relato sobre o desenvolvimento da criptografia. O livro reconta a evolução dessa arte através dos séculos, mostrando os desafios e duelos históricos que permearam a busca do segredo e segurança nas comunicações. Começando na espionagem militar da Grécia antiga, e chegando até a experimental criptografia quântica, Simon Singh traça um grande panorama de uma ciência que afetou o destino do mundo em diversas ocasiões.

A história da criptografia possui seus heróis, vilões, mitos e enganos e Singh faz um trabalho excelente em mostrar os fatos no seu contexto adequado. Singh também mostra, ainda que de forma limitada, os princípios gerais da criptografia e da criptoanálise, deixando que o leitor entenda as dificuldades por trás da criação de códigos seguros e as dificuldades ainda maiores em se quebrar esses códigos, por mais simples que sejam. Por fim, o livro faz uma análise geral dos avanços obtidos nessa campo nos últimos anos e os desdobramentos éticos e sociais dessas descobertas. Adicionalmente, o livro toca de leve na decifragem de idiomas extintos, que possui muitas similaridades com a de códigos.

Embora seja necessariamente resumido, dada a rica história da criptografia, o livro não perde o seu interesse por omitir determinadas partes dessa história. Pelo contrário, a visão geral que o livro dá permite que o leitor compreenda a extensão da influência da criptografia na história humana. E, de qualquer forma, o autor também deixa ao final uma lista de leituras adicionais que podem complementar o conhecimento de qualquer pessoa interessada em mais detalhes.

Como em seu livro anterior, O Último Teorema de Fermat, Simon Singh mostra o seu domínio da palavra escrita oferecendo um texto leve, compreensível e divertido. Mesmo os capítulos finais, que envolvem conceitos relativamente avançados, são apresentados de maneira completamente acessível a qualquer leitor que se disponha a entendê-los.

O livro é de interesse especial para pessoas envolvidas na Ciência da Computação já que ele mostra como as duas ciências possuem um relacionamento profundo. Personagens como Alan Turing, Ron Rivest, Adi Shamir, Leonard Adleman, Phil Zimmermann, Whitfield Diffie e Martin Hellman aparecem quando a criptografia moderna é escrita. O livro também faz justiça a alguns dos heróis desconhecidos como James Ellis, Clifford Cocks e Malcolm Williamson que descobriram a criptografia de chave pública anos antes dos americanos, mas que foram impedidos de a revelarem por causa das restrições de segurança do governo britânico.

Em resumo, um livro totalmente recomendado para qualquer pessoa que tenha interesses nessa área e uma leitura absorvente mesmo para os que não têm nenhum interesse particular na mesma.

Ensinado programação

April 1st, 2003 § 11 comments § permalink

Estou ensinando meu irmão mais novo a programar. Ele tem dezessete anos e, embora use um computador há um bom tempo, sua única experiência prévia além do papel de mero usuário é mexer um pouco com o Flash, usando os recursos semi-automáticos do programa.

Como linguagem inicial eu escolhi o Smalltalk, que acredito ser ideal para começar: ela é puramente orientada a objetos, possui regras sintáticas muito simples e o ambiente favorece um ciclo de edição-execução-depuração muito rápido sem a preocupação com estágios intermediários como compilação. Como a linguagem é muito linear os conceitos básicos — objeto, classe e mensagem — podem ser compreendidos facilmente. As implementações que estamos usando são o Squeak e o VisualWorks.

A partir desses conceitos básicos, nós construimos alguns “programinhas” muito simples. O primeiro foi para encontrar os divisores de um número. O segundo foi determinar se um número é primo, usando o conhecimento adquirido no primeiro. Obviamente não usamos o modo ideal de fazer os cálculos, mas deu para ilustrar os conceitos básicos de algoritmo, além de tocar em quase todos os aspectos inicias da linguagem.

É até engraçado, mas o fator mais complicado para o meu irmão é o fato de que quase todas as linguagens de programação são centradas no idioma inglês. Isso faz com que a lembrança dos nomes das mensagens seja um pouco difícil para quem só fala um idioma nativo diferente.

Por outro lado, o meu maior problema é saber explicar e dosar os conhecimentos. Eu estou tentando explicar os conceitos de programação sem entrar muito nos detalhes de implementação. O Smalltalk ajuda nesse ponto por que eu não preciso fazer uma distinção inicial entre as várias construções de uma linguagem. Em Smalltalk tudo se resume a envios de mensagem entre os diversos objetos que fazem o programa. Ainda assim, eu fico meio perdido em saber até onde e como ir. Por exemplo, como explicar lógica booleana? Nós já usamos os conceitos, mas eu não entrei em detalhes.

O fato é que meu irmão é melhor aluno do que eu sou professor :-) Eu lembro de como aprendi os conceitos mas não lembro de como fui ensinado. Como eu era muito curioso, acabei ignorando as aulas no colégio e lendo tudo que podia encontrar para aprender mais rápido. Assim, passei da compreensão de alto nível para a compreensão no nível da máquina por mim mesmo. Além disso, depois que os conceitos são fixados, aprender novas linguagens é apenas uma questão de compreender as diferenças semânticas e sintáticas da nova linguagem. O entendimento essencial já está fixado, de forma que explicar o básico para outra pessoal é um pouco estranho.

Apesar dessas dificuldades iniciais, estamos nos divertimos. Se alguém tiver indicações de material ou dicas, eu ficaria feliz em recebê-las. Especialmente indicações sobre a ordem em que os conceitos devem ser introduzidos.

Where am I?

You are currently viewing the archives for April, 2003 at Superfície Reflexiva.