O-Auto-Falante

W3log de Tiago Charters de Azevedo (Comentários para: tca@diale.org)

diale.org | RSS | Última actualização: 2008-09-14 [16:30]

Sobre o acordo ortográfico: Razão ou não

# | 2008-05-31

A língua escrita e a língua falada são dois sistemas de sinais distintos; a única razão de ser da segunda é representar a primeira; o objecto linguístico não é definido pela combinação da palavra escrita e da palavra pronunciada, esta última constitui, por si só, esse objecto. Mas a palavra escrita mistura-se tão intensamente com a palavra pronunciada de que é a imagem que acaba por usurpar o papel principal.

Citação

# | 2008-05-24

If a web browser is defective, causing errors in the display or performance of the page, should the page developer struggle to hide the browser's defects, or should the defects be revealed in hope of creating market pressure to force the browser maker to make good? By which approach is humanity better served? — Douglas Crockford

Método do ponto fixo em Javascript

# | 2008-05-23

Ora aqui está um exemplo engraçado (alterações óbvias para outra função).

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Método do Ponto fixo
<script type="text/javascript">
var x=new Array();
x[0]=0.5;
for (i=1;i<10;i++)
{
x[i]=Math.cos(x[i-1]);
document.write("<pre>"+x[i]+"</pre>");
}
</script>
</body>
</html>

As redes sociais

# | 2008-05-21

Estas redes sociais, como qualquer outra, são viciantes. Mais uma coisa para se perder tempo a ler e a fazer. Esta, no entanto, é pela suas características (http://www.twitter.com) uma das mais rápidas, funcionais e apelativas. Acho que não via nada tão promissor desde o aparecimento do Blogger...

Estou a experimentar o Twitter

# | 2008-05-21

Que linguagem usar

# | 2008-05-21

Que linguagem usar para explicar um pensamento. Existem três escolhas óbvias: a linguagem natural, como a portuguesa; a matemática; ou uma linguagem de programação.

A linguagem natural é, pode ser, imprecisa ou ambígua, e por vezes com alguma descessaria verborreia se perde o que se queria explicar inicialmente. É uma virtude do uso da linguagem pela qual nos entendemos.

A linguagem matemática é, em certa medida, oposta da linguagem natural; permite expressar ideias formais poderosas usando poucos recursos. No entanto a linguagem matemática é muitas vezes críptica e pouco acessível para leigos sem formação específica.

A junção entre a matemática e a tecnologia fornece a terceira escolha, a escolha ideal: uma linguagem de programação. Esta partilha com a matemática a possibilidade de expressão de conceitos formais e abstractos, e com a tecnologia a vantagem do imediato, do directamente concretizado (estou a pensar no termo em inglês evaluated). O seu comportamento pode ser observado, modificado e os seus resultados e modificações logo experiênciados1.

Notas:

1. Este parágrafo alterado pode servir, serve, para fundamentar a escolha de software livre sobre qualquer outro formato.

Something that used to be safe: using the Internet

# | 2008-05-18

A ler: Disconnecting distraction, por Paul Graham

Something that used to be safe, using the Internet, gradually became more and more dangerous. Some days I'd wake up, get a cup of tea and check the news, then check email, then check the news again, then answer a few emails, then suddenly notice it was almost lunchtime and I hadn't gotten any real work done. And this started to happen more and more often.

— Paul Graham

Wireless

# | 2008-05-14

Depois de muitas tentativas aqui fica o ficheiro de configuração para o /etc/wpa_supplicant,conf:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
  ssid="eduroam"
  key_mgmt=WPA-EAP
  eap=TTLS
  identity="user"
  password="password"
  ca_cert="caminho para certificados"
  phase2="auth=PAP"
  eapol_flags=3
}

A minha satsifação tem simplesmente haver com o facto de isto não ser possível à uns meses atrás.

Notas:

Como correr Lisp num servidor web?

# | 2008-05-11

Tenho várias alternativas:

  1. Apache + módulos de Lisp (existem mas a probabilidade de encontrar este serviço disponível num qualquer alojamento de páginas é zero);
  2. Correr o emacs em batch mode via PHP (é necessário uma conta num qualquer servidor, é caro o serviço e tem problemas de segurança);
  3. Usar um interpretador de Lisp em Javascript.

Esta última parece ser a mais razoável, há alguns na rede! Notícias para breve1.

Notas:

1. Se algum leitor destas linhas tiver a solução da primeira, mande-me um email, sff.

wrrrld wide web

# | 2008-05-11

Ainda no seguimento da entrada anterior exponho o que tenho idealizado.

A ideia seria organizar um conjunto de textos através de umas tags. Estas poderiam ser impostas ou retiradas/geradas através de um algoritmo tipo Porter, gerando as raízes e organizando a informação. Ao utilizador/leitor final pedir-se-ia que escolhesse quais as tags que gostaria de ver e qual o formato pelas quais quereria consulta-las1.

Também poderia organizar a informação que desejaria ler através de uma pesquisa de um conjunto de palavras (acho que o Google já faz isso) com a possibilidade de adicionar tags ou mais palavras de pesquisa2.

Notas

1. O detalhe técnico é que não faço a mínima ideia como se faz isso nas linguagens usualmente utilizadas, i. e., PHP (para correr isto num servidor web). Posso usar JavaScript mas nem isso me apetece. Volto à minha vontade inicial: como correr Lisp num servidor web?

2. Já tenho uma ideia como fazer isto... em Lisp claro! What else!

W-i-d-e-U-R-L.com

# | 2008-05-11

http://wideurl.com/wubbleyou-dee-eye-aye-ell-ee-dot-oh-are-gee

A perfeita página de wrrrld wide web

# | 2008-05-11

Já mais do que uma vez andei às voltas com isto. Qual a melhor forma para um página web? Claro que as respostas dependem sempre da função para a qual a coisa é desenhada. Seja um site de notícias, página pessoal, venda de produtos, etc. Pouco falta para se começar a não distinguir cada uma destas coisas, todos passaremos a vender, dizer e a disponibilizar qualquer coisa, sob variados formados, localmente ou remotamente através de outros.

Uma das abordagens mais originais é, por exemplo, a forma como o Google news funciona (encontrar o artigo original do developer; tem o nome de uma ilha indonésia...) A forma, o número, os conteúdos, são controlados pelos utilizadores/editores, que através das suas escolhas, controlam todos os atributos do que vêm.

Luxo: programar em Lisp

# | 2008-05-11

Aprender a programar em Lisp é como conduzir um carro de luxo, depois disso quer-se sempre voltar a conduzi-lo e qualquer outra linguagem de programação parece sempre um carocha.

Arco-íris

# | 2008-05-11

Fixed point combinator — Javascript and Lisp

# | 2008-05-10

JavaScript: The World's Most Misunderstood Programming Language

JavaScript has much in common with Scheme. It is a dynamic language. It has a flexible datatype (arrays) that can easily simulate s-expressions. And most importantly, functions are lambdas.

Pay particular attention to The Applicative Order Y Combinator, one of the most strange and wonderful artifacts of Computer Science.

Douglas Crockford

function Y(le) {
    return function (f) {
        return f(f);
    }(function (f) {
        return le(function (x) {
            return f(f)(x);
        });
    });
}

Notas:

Construção de um arquivo de software para o ensino da matemática

# | 2008-05-10

A construção de um arquivo de software para o ensino da matemática passaria pela construção de um site com as características, por exemplo, do arxiv.org (http://arxiv.org)

Que tipo de software estaria elegível?

Quais as principais características?

Licença de copyright

Cada submissão deveria conter obrigatoriamente os seguintes campos (de modo assegurar a qualidade científica e pedagógica)

O que estava a pensar seria algo simples, mais simples do que parece...

O sistema de endorsement permite controlar quem põe o quê de modo a garantir, dentro do possível, a qualidade cientifica e pedagógica dos códigos. Acho que um sistema de tags, tipo del.icio.us, seria o mais eficaz, no entanto as tags estariam pré-definidas de modo a garantir um certa coerência geral na indexação. Para evitar a o excesso de pdf's nos manuais, que seriam obrigatórios, poder-se-ia implementar apenas uma descrição em ascii com as equações em $\LaTeX{}$, e usar o MathMl.js (http://www1.chapman.edu/~jipsen/mathml/asciimath.html) para mostrar as equações.

Outra e outra vez ainda

# | 2008-05-07

Ando outra vez com isto na cabeça, e outra vez.

Apesar da expressão

latex2png equation.

não resultar, não tem em conta efeitos de memória, ou persistência do fenómeno, acho que ainda poderá dar qualquer coisa.

Não resisto

# | 2008-05-07

Como passar daqui

latex2png equation

para a PDE?

O cálculo é engenhoso.

latex2png equation

Multiplicando por latex2png equation

latex2png equation

Tomando o limite latex2png equation e somando em latex2png equation vem

latex2png equation

Estruturas paralelas

# | 2008-05-05

A plataforma de Stewart é um manipulador paralelo (um octaedro) usado na construção de simuladores de voo (entre outras aplicações).

Plataforma de Stewart. Note-se a orientação e posição da plataforma superior relativamente à inferior (uma rotação e redução).
Plataforma de Stewart. Note-se a orientação e posição da plataforma superior relativamente à inferior (uma rotação e redução).

Do ponto de vista matemático, podemos formular dois problemas. O primeiro chamado de problema directo é formulado da seguinte maneira: dados os comprimentos de cada perna latex2png equation determinar a posição da plataforma superior (posição e ângulos de Euler) latex2png equation O segundo, chamado de problema inverso, é, dada posição e os ângulos latex2png equation determinar os comprimentos das pernas latex2png equation. Este último, o problema inverso, é, por estranho que pareça, mais fácil de resolver.

O estudo deste tipo de estruturas remonta a Cauchy1 e no entanto continua a ser objecto de estudos recentes.

Conceptualmente o estudo é simples mas computacionalmente muito difícil, determinação dos domínios onde as funções definidas por

latex2png equation

são invertíveis.

Notas;

1. Cauchy, Sur les polygnes et les polyedres, J. Ecole Polytechnique, XVI, Tome IX:87, 1813

Fórmulas e mais fórmulas

# | 2008-05-05

Se há alguma que ressoe, quase sempre, é esta1

latex2png equation

Mais, para mais tarde.

Notas:

1. http://en.wikipedia.org/wiki/Information_theory

Verbos, verbos irregulares e sua evolução

# | 2008-05-03

Já à dois meses me debati com isto. O problema está em explicar que

the half-life of an irregular verb scales as the square root of its usage frequency...

Ou seja a probabilidade de um verbo passar de irregular a regular é proporcional ao inverso da raiz quadrada da sua frequência de uso1.

Tenho agora uma explicação simples, ao contrário da outra.

Vou definir que um verbo é regular (irregular) num dado instante se das latex2png equation ocorrências desse verbo, metade + uma são conjugações regulares (irregulares)2.

Dado latex2png equation ocorrências de um verbo irregular (vou admitir que este número é ímpar por simplicidade, no entanto o mesmo argumento vale se for par) a probabilidade deste verbo se tornar regular no instante seguinte é simplesmente data pela probabilidade de latex2png equation dessas ocorrências serem conjugações regulares e a outra metade conjugações irregulares. Essa probabilidade é dada por

latex2png equation

onde a última igualdade se obtém usando a aproximação de Stirling.

E para um número de ocorrências suficientemente grande obtém-se a expressão desejada

latex2png equation

Será esta a explicação do fenómeno da regularização dos verbos?

Notas:

1. Erez Lieberman, Jean-Baptiste Michel, Joe Jackson, Tina Tang & Martin A. Nowak Quantifying the evolutionary dynamics of language, Nature 449, 713-716 (11 October 2007)

2. Isto pode parecer confuso mas a verdade é que um verbo não passa instantaneamente de irregular para regular, coexiste nas duas formas durante algum tempo, podendo ainda transitar de uma para outra até a sua (i)regularização estabilizar.

GNUS, finalmente

# | 2008-05-02

Há muito tempo que andava a desejar experimentar o GNUS.

Desejo satisfeito.

Aqui ficam alguns detalhes de configuração1

(setq mail-sources
      '((file)
	(pop :server "pop.server.name" :user "tca" :password "****")
	(pop :server  "pop.server.name" :port 995 :user "tca" :password "****" )))
(setq smtpmail-default-smtp-server "localhost"
       smtpmail-smtp-server smtpmail-default-smtp-server
       smtpmail-smtp-service 2025
       smtpmail-local-domain nil
       user-mail-address "meuemail@mail.pt"))

Claro que o envio através de um SMTP local não funciona quando se está atrás de uma firewall restrictiva. Para isso configura-se o ssh 2 (ver ficheiro ~/.ssh/config)

## SMTP Tunnel
Host mail-tunnel
HostName host.name
User tca
LocalForward 2025  host.name:25
KeepAlive yes
e depois correr o comando
ssh -N -f -q mail-tunnel
antes de enviar o primeiro email (a ligação manter-se-á activa durante bastante tempo).

E está pronto para todo o serviço.

Há mais um detalhe para o envio de emails (auto-explicativo)

(setq gnus-gcc-externalize-attachments t)

Alguns links:

Notas:

1. A esta configuração faz-se:

tca             --> user
***             --> password
pop.server.name --> servidor pop
host.name       --> máquina de uma conta exterior

2. Para uma máquina com sistema operativo GNU/Linux - Debian.

Sucessões

# | 2008-05-01

Um dos exemplos que gosto de dar aos alunos que frequentam a disciplina de métodos numéricos é aquele que mostra a "velocidade", ou rapidez, de convergência de diferentes sucessões para um mesmo limite.

Considere-se as sucessões

latex2png equation

e

latex2png equation

É fácil ver que ambas tendem para 2. A pergunta é: qual das duas converge mais depressa?

Uma pequena experiência em Octave esclarece todas as dúvidas.

> n=10;
> x(1)=1;for i=1:n;x(i+1)=x(i)/2+2/x(i);endfor;
> y(1)=1;for i=1:n;y(i+1)=y(i)/2+1;endfor;
> [x' y']

ans =

  1.0000  1.0000
  2.5000  1.5000
  2.0500  1.7500
  2.0006  1.8750
  2.0000  1.9375
  2.0000  1.9688
  2.0000  1.9844
  2.0000  1.9922
  2.0000  1.9961
  2.0000  1.9980
  2.0000  1.9990

A trabalhar

# | 2008-05-01

Arquivo

# | 2008-03-01

Copyleft

1999-2008 (c) Tiago Charters de Azevedo São permitidas cópias textuais parciais/integrais em qualquer meio com/sem alterações desde que se mantenha este aviso.