2008/08/23

gnuplot

Wow, I did not know how easy gnuplot is.
See http://people.ku.edu/~syliu/shredderyin/gnuplot-doc/TOC.html .

The obvious test case:
gnuplot> lg(x) = log(x)/log(2)
gnuplot> hh(x) = ((x==0) || (x==1)) ? 0 : - x * lg(x) - (1-x) * lg(1-x)
gnuplot> set samples 100
gnuplot> plot [0:1] hh(x)

2008/02/05

DLREP

2007/12/04

The end of privacy

New technologies will reduce privacy even more.

I can enter my club with my finger print.

http://www.economist.com/displaystory.cfm?story_id=10059596
http://www.economist.com/science/tq/displaystory.cfm?story_id=9719045

there is soooo much on line

Actually I am quite impressed by how much can be found
on-line. For instance, yesterday I found that
Abramowitz and Stegun is on-line:
http://www.math.sfu.ca/~cbm/aands/
When I started math in 1978, this was THE reference
for numerical results. For many years I had a
copy of the table with prime numbers with me.
Apparently this part was not copied; only the formulas
are.

coin or change problem

I also wanted to write about the coin problem
or change problem. When I read about this in CM
I *had* to buy the book. Turns out that a
fair discussion is available on line,
but not in Wikipedia though. See
http://www.cut-the-knot.org/ctk/GeneratingFunctions.shtml

In fact the whole business is somewhat less surprising
if you think about binomial coefficients in a symbolic
way: in (A+B)^4 we have that there are (4 choose 2) = 6
combinations of AABB. This is also the coefficient
of X^2 in (1+x)^4. Likewise, we find that the number
of ways to give change for t cents is the exponent
of (1+X+X^2+ ...)(1+5X+25X^2+ ...)(1+10X+100X^2+ ...)(1+25X+625X^2+ ...)
if the nominations are 1, 5, 20 and 25 cents (the old Dutch system)
Surprising is that these expressions can be changed for
1/1-X, 1-5X, 1-10X and 1-25X, and that we can
multiply those, without running into trouble.

Derangements

One problem that always interested me is related
to permutations: if you choose an arbitrary permutation,
what is the probability that no number stays in the same place.
In the text books this is known as the hat problem,
but I know it from Sinterklaas parties in which people
must make a surprise for somebody else.
So all names are written on a piece of paper
and everybody must draw a name. What is the
probability that this process succeeds the first time.

The problem is discussed various times in Sheldon Ross's
book, in section 5m. In this approach the
inclusion exclusion principle is used to establish
the sum
1 - 1 + 1/2! - 1/3! + (-1)**N/N! which approached 1/e ~ .36788
See also example 3.5c.

Daniel Marcus also discusses the problem. Permutations
that move all its elements are called derangements,
and he give the first values.

Then in F he gives two recurrence relations:
D_n = (n-1) (D_{n-1} + D_{n-2}) ; n >=3
D_n = n D_{n-1} + (-1)^n ; n>= 2

Today I found a piece of paper which made me remember that
Knuth also discusses this problem [193].
He uses h(n,k), where n is the number of hat owners
and k the number of people that get there hat back,
so D_n = h(n,0).

The following formula is also pretty obvious:
h(n, k) = (n choose k) h(n-k, 0).

He also gives a table which is loaded with structure

n h(n,0) 1 2 3 4 5 6
0 - 1
1 - 0 1
2 - 1 0 1
3 2 3 0 1
4 9 8 6 0 1
5 44 45 20 10 0 1
6 265 264 135 40 15 0 1
(I should program this)

They say that
h(n, 0) - h(n, 1) = (-1)^n and
h(n, n-2) = (n choose 2)
But it also seems that
h(n, 1) = n h(n-1, 0)
and that
h(n, 2) = n/2 h(n-1, 1)
and maybe
h(n, 3) = n/3 h(n-1, 2)
10 = 5/3 * 6
40 = 6/3 * 20
and maybe
h(n, 4) = n/4 h(n-1, 3)
15 = 6/4 * 10

Another observation is that these tables make me thin of
the poisson distribution with lambda=1,
where the values for n=0=1 equals 1/e ~.36788
For n=6 we get
264.87
132.43
44.14
11.03
2.21
so that is close enough


Aah, this is certainly true and it is surprising
that itś not mentioned. Now I only need to figure
out why.

Anyway, what I really liked is that GKP estimate the
error of D_n = h(n, 0) within one integer,
meaning that they can calculate it as
floor( n!/e + .5 )


Buuh, all this stuff is already available on line.
It is actually impressive. See
http://en.wikipedia.org/wiki/Derangement
http://www.research.att.com/~njas/sequences/A000166
http://en.wikipedia.org/wiki/Rencontres_numbers

This thing about the exact approximation is listed also,
anmd my observation about the Poisson distribution
is too. But the relation within the table I have not
found yet.

2007/11/30

Chapter A and B from "Combinatorics, a problem-oriented approach"

CHAPTER A

Standard Problem 1:

Find the number of strings of a given length k
using n distinct symbols

Ans: n**k


Find the number of strings of a given length k
using n distinct symbols, if no repetition is allowed.

Ans: n*(n-1)...(n-k+1)

###################
Permutations

###################

Rearrangement: any orderdering including the original 1

Derangement: rearrengement which leaves no element in
it original position.





CHAPTER B

DEFINITION:
combination = list of elements (symbols) in which the order is not taken into account

Standard Problem 3:

Find the number of combinations of a given length k consisting
of distinct symbols from a set of size n.

Ans: BinCoeff(n, k) since
- Distinct ==> n * (n-1) ... (n-k+1)
- Order not taken into account ==> k! strings represent
the same combination, so divide by k!.

####################

Pascal's triangle etc

The commutative property makes
BA equivalent to AB etc etc.

There must be a link to the change-problem here.

####################
B15:
Rearrange 3 As and 7 Bs such that no two consecutive A repeat.

Solution: start with BBBBBBBB and observe that the 3 As
can be put in 8 different places: 8*7*6 / 3*2*1

==>
Standard Problem 4

Find the number bitstrings with
m 0s and n 1s such that there are no consecutive 1s.

Ans:
BinCoeff(m+1, n)

####################
Find all k=5-digit combinations from the set {1,2,3}, #{}=n=3
with at least one symbol each.

Put them in lexicographical order and observe where
the < can be placed:

111<2<3
11<22<3
11<2<33
1<222<3
1<22<33
1<2<333

BinCoeff(4,2) = 6

==>
Standard Problem 5

Find the number of combinations of a given length k
using symbols from a given set of size n, not
allowing missing symbols.

BinCoeff(k-1, n-1)

####################
B21
20 letter combinations of A, B and C with at least
1 A, 2 Bs and 3 Cs

A+ (< B)B+ (< CC)C+

Well, instead of putting two "<"
we can put one "< B" and one "< CC",
which can be done in (19-3)=16 choose 2
ways.
####################
Find all k=2-digit combinations from the set {1,2,3}, #{}=n=3
allowing missing elements.

Adding 123 it reduces to the previous case:
11+123=11123
22+123=12233
33+123=12333
12+123=11223
13+123=11233
23+123=12233

==>
Standard Problem 6

Find the number of combinations of a given length k
using symbols from a given set of size n, allowing
repetition and missing symbols.

Ans:
BinCoeff(k+n-1, n-1)

####################
A symbol A dominates consistently if for any
initial segment (prefix) A occurs at least
1/2 of the time.

B25
0000=0
0001=0
0010=0
0011=0
0100=0
0101=0
0110=x
0111=x

B26
A-dominates sequences of 3 As and 3 Bs:
000111
001110x
001101
001011
010011
010101
so 5 are 0-dominated
and 20-5 = 15 are not.

There is a one-to-one correspondence with
with all sequences of length 6 including 4 As
and 2 Bs:

For each rearrangement of AAAABB:
- find the smallest initial segment
in which A outnumbers B
- flip the symbols in that segment

A-AAABB --> B-AAABB
BAA-AAB --> ABB-AAB
B27
BBAAA-A --> AABBB-A
ABA-ABA --> BAB-ABA

ABB-BAA < - BAA-BAA
ABABB-A < - BABAA-A

Why is this 1-to-1???

==>
Standard Problem 7

Find the number of 0-dominated bitstrings with
m 0s and n 1s.

Ans: BinCoeff(m+n, m) - BinCoeff(m+n, m+1)



B29

2007/11/29

Approximation from Concrete Mathematics [111]


for x > 67 and where \pi(x) is the number of prime numbers <= x And if P_n is the n'th prime, then

birthday paradox



Halmos[104], see also Stinson[237]


some how related to the birtday paradox. It follows that n> sqrt(730 ln(2)) = 22.49438.
In general sqrt( 2 ln(2) n ) = 1.177 sqrt(n)

test



Wow, this seems to work wel
lexcept that the alignment is not great. So it looks as if it wont work with in-line equations.

2007/11/27

hash PGP key: 103F 49A8 2819 C48A 551D F482 2931 8CF1 92FD 1212

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (MingW32)

mQGiBETmAkERBADLtgBOPwzRi5FH7w0rduyST8ZquVf9i6wKElFRQSWfRK8/7nEc
kGcpaP3OSsvnTJkUxPNPGYyJXCvoSMHpR0/sj+dlK7uZQhNr3N9kM7CWWlgwrNAa
SNT4faZP2CVb2TLev1q4/X1VY+RuTILw+N3mIXVT/zKMLM5Y4knnpaiVRwCgv6oA
upVVt97dc4q7mxIxC7QIVcMD/A5mZkIl2ELOkDxFu7eynFCTzBlEOakIVx5f0CiM
yx2uOL7pyxq2rH22nJ6A/7ARBAF2vqKO+OrUvtJyheUt738dVSytXWVGlC2wZt10
23BQi9dsdLRo52u62SCkVWVEdtoOwvzwvSBun9xKDUQJFGeWHFzZGpkBC7m4XKNE
dPRFA/9gyz3VGXCJ93TPFAHTzwmhb3loAnfBWKl1D6kSVIVUDTr7D+rqSSScYxgg
TXV70P3l0Tr/VCZv5OY6nkFyyNqWpzd5QHuP6Rkt6tnPB6CZmbxk8OOo71WugG4n
E43P9MRWC9PHwMbhkmzb20loz8hl4RcQIXiPrNHb1ZSZemSG+rQmSmVyb2VuIHZh
biBkZSBHcmFhZiA8anZkZ0BsY2MudWZtZy5icj6IZgQTEQIAJgUCROYCQQIbIwUJ
CWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECkxjPGS/RISLsUAoKRAURE7
+d6jyC+cPtYjZw0lPNE+AJ9zYDR/XKcqj0BhwG1Ay+0XAkeF07kCDQRE5gJgEAgA
rwhTHOx/peGOWLNv7XowXw/89JBWGSaNLJdSGkoB4Oye1ZjnKXRJ52RDfhJ5F1Mi
FwkTkATKAumtH3qWAEjZVKrsuhTs0Da422pazdcnKLsNsRXpVwRBu8Wd99EAAn/U
3a4kynj87ZCWOT+CzFCzWgiCswMpa5vm+cf8Nx6dp0v4626D/KRCjQZNvjhNkaDz
xdEm9hesBtJctT9NWjVY+wZoSAIh1OlydavHXSFh/vgRNmZV63QhY0RBFhwd0HzA
v2F7iMx0DtWmETThYoF9r00I1AbcaUd+zLMi/C1MPyMApZpuCsnz10WkAuL4gIdc
yrF1JMcRt3YoXn+h5+k6YwADBQgAhFBlNy9ATDr8S5dURirnvHr8RC+CUjkH8FbL
EaVeQNIQDgTI521ZL+PL4mETfA7yUlON9+4FChY+B2EA5gLAOu54U1IuK8AzfPQt
4h15wsUPrmM0MTBbHgjzk5LtiZ2W2B4XaeBYYw8DORTQLDRyzQFP9BmkzcP8ZpU0
dGZd0XDBHeuNF8SobQskXnsgKRRd3w4nhRvrYGmTDZqWpI/+1DNdgZcUkSQoMA6+
ADzVn73NYI26Zz10xpyxMdizrtqOzf4Jmr5uabg8vx+NO2AqxT+6A3Xr2z5SeyE/
4wNkbMLdiHoWThzc6dAfAX0if2mXKw9iKfEzSEZJgR2F49v7KYhPBBgRAgAPBQJE
5gJgAhsMBQkJZgGAAAoJECkxjPGS/RISzCYAoIpsx9rKr+v5HyJyHEC6ChmmNS3o
AJwI81nHLYnOmkkHfYxRh41EBe13sg==
=Xs0y
-----END PGP PUBLIC KEY BLOCK-----

ir e vir, levar e trazer

Você vem?
Estou indo! (I am coming)

Você traz meu livro?
Vou levar.

It is always relative to the place
of the person who speaks.

combinatorial analysis

I think I have found two nice books about combinatorial analysis:
- A walk through combinatorics, by Bona
- Combinatorics, a problem oriented approach.

At first I was not very enthusiastic about the second, because,
as the title says, one has to absorb the material solving problems.
Aaagh. Work :-(. But I worked myself thru Chapter A and B, and
the exercises are really well-written and well-tuned. A pity
that the book is relatively expensive (about 40$) for its size.

2007/09/04

paginas latex

http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf
http://www.andy-roberts.net/misc/latex/latextutorial9.html

2006/07/10

GPG in Thunderbird

I have downloaded the GPG extension (plug-in)
to the Thunderbird mail program.

It is GREAT, works intuitively and exactly as you expect.
The trick is to get it installed.

You can download it from
https://addons.mozilla.org/thunderbird/71/
but DO NOT try to download it using Firefox.
You must follow the instructions (:-)
and download to a local file using Firefox
Then use Thunderbird to import the file.

python (1)

## http://www.math.umbc.edu/~campbell/Computers/Python/numbthy.html
import numbthy

input = open('primes.txt', 'r')

for line in input:
## print line
p = int(line, 16)
print p
print numbthy.isprime(p)

2006/07/03

Analytic Hierarchy Process (AHP)

Link Wikipedia
http://en.wikipedia.org/wiki/Analytic_Hierarchy_Process

PDF file with the theory
mdm.gwu.edu/forman/DBO.pdf

A simple powerpoint with example
cispom.boisestate.edu/opermgt345tfoster/ahp.ppt

An example decision -- spreadsheet
ecolu-info.unige.ch/~dubois/Mutate_final/Lectures/Lect_1_1_2/site_criteria.xls

commandos openssl

-set_serial 0x1

openssl genrsa -out CHPR-ACRAIZ.pem -passout pass:123456 2048

openssl req -x509 -key CHPR-ACRAIZ.pem -out CERTAA-ACRAIZ.pem -config acmg_conf.txt -passin pass:123456 -new -batch -verbose

openssl x509 -inform PEM -in CERTAA-ACRAIZ.pem -text | more

openssl req -x509 -key CHPR-ACRAIZ.pem -config acmg_conf6.txt -passin pass:123456 -new -batch -verbose -text -days 3652

openssl x509 -inform PEM -outform DER -in CERTAA-ACRAIZ2.pem | dumpasn1.exe - | more

openssl ca -extensions ACIOMG -days 1826 -keyfile %s -in %s -out %s -notext -passin pass:%s -config ./config/ac.cnf -cert ./uso/CERT-ACRAIZ.pem -batch

openssl pkcs12 -export -inkey chave-ufmg.pem -in cert-ufmg-aa.pem > chave-ufmg-890.pfx

2006/05/07

Fact about Brazil

According to Veja, 03/05/2006
123 million voters
7 million earn more than 10 minimum wages
15 million earn between 5 and 10 minimum wages
101 million earn upto 5 minimum wages

2006/04/21

networking

ping
tracert
ipconfig /all
ipconfig /renew

2005/07/16

Bayes

http://plato.stanford.edu/archives/fall2001/entries/epistemology-bayesian/
http://plato.stanford.edu/entries/bayes-theorem/
http://philosophy.elte.hu/colloquium/2001/October/Szabo/angol011008/node7.html
http://staff.feweb.vu.nl/avos/


http://www.raid-symposium.org/raid99/PAPERS/Axelsson.pdf
http://www.acad.sunytccc.edu/instruct/sbrown/stat/jury.htm
http://www.acad.sunytccc.edu/instruct/sbrown/stat/falsepos.htm
http://plus.maths.org/issue2/puzzle/taxisolution.html
http://psych-www.colorado.edu/~psyc4135/Handouts/CondProb.pdf

http://www.economist.com/science/displaystory.cfm?story_id=5354696

2005/07/12

links BS7799/ISO17799

I bought it from BSI, but I believe you can buy it cheaper from ANSI.

Before you decide to buy look at the following documents:

Good highlevel explanation. From Sherbrooke, Québec, of all places.
https://www.callio.com/files/wp_iso_en.pdf
especially pages 4 to 15; the rest is fluff

Checklist based on BS7799, from SANS.
If you can make sense of this checklist alone,
you don't have to buy anything else.
http://www.sans.org/score/checklists/ISO_17799_checklist.pdf


Document NIST with history and good pointers to NIST documents
http://csrc.nist.gov/publications/secpubs/otherpubs/reviso-faq.pdf


Note that these documents are for management;
they dont't resolve your technical problems

2005/07/11

links about biometrics

new links (July)

Excellent intro:
http://biometrics.cse.msu.edu/JainRossPrabhakarCSVT_v15.pdf

Shows fotos how to cheat!
http://blackhat.com/presentations/bh-usa-02/bh-us-02-smith-biometric.ppt

Other intro (slides):
http://www.isg.rhul.ac.uk/msc/teaching/ sc3/sec3slides/SC3-2004-3.pdf



intro
http://anil299.tripod.com/vol_002_no_001/papers/paper005.html

burlar
http://www.heise.de/ct/english/02/11/114/ <---- imperdível!!! http://www.schneier.com/crypto-gram-0205.html#5
http://www.google.com/search?hl=pt&newwindow=1&q=matsumoto+%22gummy+fingers%22&lr=

site bom
http://biometrics.cse.msu.edu/publications.html

comercial
http://www.barcode.ro/tutorials/biometrics/fingerprint.html

2005/06/05

Links Segurança de Informação

NIST, pub 800-12 por exemplo
http://csrc.nist.gov/publications/nistpubs/

http://www.blacksheepnetworks.com/security/info/misc/handbook/ewtoc.html

Pfleeger&Pfleeger
http://www.phptr.com/bookstore/product.asp?isbn=0130355488&rl=1#

Kaufman Perlman Speciner
http://vig.prenhall.com:8081/catalog/academic/product/0,1144,0130460192-IS,00.html

Stallings
http://williamstallings.com/Crypto3e.html

2005/03/24

Uso de vírgula (2)

Mito 1: "não existem regras para vírgulas." Ao contrário, existem regras claras, mas é verdade que em alguns casos o seu uso é opcional.


Regra 1: Uma frase que está na sua ordem natural (sujeito + verbo + complementos verbais etc) não precisa de vírgulas. Em particular, nunca há vírgula entre sujeito e verbo.

Exemplo:

"O rapaz que estava ao meu lado na sala de espera de Doutor João deu sua carteirinha de seguro de saúde e sua carteira de identidade à secretária a pedido dela e depois ele atendeu uma ligação por celular em voz tão alta que todas as pessoas presentes eram obrigadas a ouvir os detalhes mais íntimos da vida romântica dele."

Existe uma pausa natural depois da palavra “João”, mas não há vírgula neste caso.

Mito 2: "uma vírgula é necessária caso haja um pausa natural."

Regra 2: Se mudar a ordem natural da frase, uma vírgula é quase sempre necessário.

Exemplo: “Este trabalho é na minha opinião muito fraco.”
Ordem básica: “Este trabalho é muito fraco.”
Resultado: “Este trabalho é, na minha opinião, muito fraco.”

Obs 1: As vírgulas funcionam como parênteses; veja a seguir.
Obs 2: Quando a frase começa ou termina com “na minha opinião”, uma vírgula é necessária.
Obs 3: No caso de palavras como “porém”, “no entanto” etc. ou se coloca duas vírgulas, ou ninhuma.

Regra 3: Existe uma diferença entre “Brasileiros, que gostam de futebol, têm mais chances de ter um ataque cardíaco” e “Brasileiros que gostam de futebol têm mais chances de ter um ataque cardíaco”.

Na primeira frase as vírgulas funcionam como parênteses: “Brasileiros (que, aliás, gostam de futebol) têm mais chances de ter um ataque cardíaco”. O sujeito é “Brasileiros”. Na segunda frase a parte “que gostam de futebol” define e restringe o sujeito e portanto o sujeito é “Brasileiros que gostam de futebol.”

Regra 4: Usa-se vírgula para colocar palavras, termos ou idéias em uma seqüência.

Exemplo: “Ana, Liesbeth, Lissane, Tessa, Marina e Tiny são todas mulheres lindíssimas.”

Obs 1: Se as idéias precisam de vírgulas, é melhor usar o ponto-vírgula como separador, mas muitas vezes é melhor criar uma lista de itens.
Obs 2: Numa enumeração nunca há uma vírgula antes de “e”, mas usado como conjunção (e portanto substituível por “ou” ou “mas”) pode ter.


Regra 5: Não se usa vírgula entre duas frases quando não há uma ligação gramatical.

Exemplo: XXX "João voltou de Argentina, disse que estava muito frio lá." XXX

Isto é errado, porque não há nenhuma ligação gramatical entre estas duas afirmações; a ligação é logica. Nestes casos deve se usar duas frases separadas, com ponto:
"João voltou de Argentina. Disse que estava muito frio lá."
Também pode-se usar um ponto-vírgula em alguns destes casos, mas é mais seguro simplesmente usar um ponto.


Uso de vírgula (1)

(Dedico esta página a Jean Everson :-)

Avalio muitos textos, e vejo muitos erros de português. Pode parecer estranho um estrangeiro falando isto; eu cometo erros burros que nenhum brasileiro faria. Mas por outro lado, meu raciocínio gramatical é completamente diferente. Por exemplo, nunca vou confundir assento com acento, já que a primeira palavra é nova para mim enquanto a segunda existe em todas as outras línguas que conheço.

Vejo muitos erros com vírgulas, então acho que vale a pena falar um pouco sobre isto. O mais interessante é que em inglês é quase a mesma coisa. Uma vez comprei The punctuation Handbook, um livrinho de 40 páginas e que resolve todas as dúvidas. No ano passado achei um livro parecido em português: Só vírgula – Método fácil em vinte lições, por Maria Tereza de Queiroz Piacentini, EduFSCar, ISBN 857600014-8. Paguei 25 reais, eu acho, e recomendo este livro para todo mundo.

Na realidade o livro discute um pouco mais que apenas v’rgulas, e 20 lições é muita coisa. Tenho um outro livro de que gosto muito: Redação empresarial (2ª edição) por Miriam Gold, ISBN85-346-1215-3, que explica o básico sobre vírgulas em 3 páginas. Vou resumir o que ela fala:


http://jvdgraaf.blogspot.com/2005/03/uso-de-vrgula-2.html

2005/03/11

favorite books

(Feb 2004, moved from my web page to this blog)

The other day I was browsing and found the web page of Peter Guttman. Apart from knowing a lot about PKI and practical security, I was inspired by his web page. If I was still leaving in Quebéc, I would feel a moral obligation to write my page in Portuguese, but this is Brazil and they love everything from Europe and the US. It would also be highly unpractical for many reasons: my written Portuguese still leave much to be desired (deixa muito a desejar) and a lot of the spontaneity would be lost. Also, maintaining a trilingual (English-Dutch-Portuguese) web page seems an exageration since those Brazilians interested in the subjects on this page can surely read English.

So my idea is to maintain a web page about the scientific me. For a brief look at the personal me and to understand the reason the irrational decision to move to Brazil please click here.

Favourite Books: as a true intellectual (my wife doesn´t think I should cakk myself one) I can reveal things about myself by telling about my favourite books:

  • Dune, by Frank Herbert. Certainly the best SF book I read.
  • Brazil, by Errol Lincoln Uys. The history of Brazil in a romanticized but very readable version
  • The Brazilians, by Page. A fair description of contemporary Brazil
  • The Art of Computer Programming Vol 2, by Knuth. All the stuff about random numbers, primality testing and factoring. Need I say more?
  • The Handbook of Cryptography. A beauty, though too tough for most of my CS students. They even cite some of my papers.
  • Cryptography and Network Security, by Stallings. Probably the best textbook for CS students, though I don't like the way he does the math. There is virtually no distinction between the 2nd and 3rd edition.
  • Cryptographic Protocols, by me, yet to be written. There is no good book about protocols. All the books I've seen so far are either too shallow, or too theoretical. One day I hope to write the book that I believe is missing.
  • Quantum Computation and Quantum Information, by Nielsen and Chuang. When I did my thesis it did not exist, now it is the book. They cite some of my work.
  • The Selfish Gene, by Richard Dawkins. Convinced me that evolution makes more sense than religion as an explanation for why we are here. His other books are worth reading too.
  • Guns, Germs and Steel, by Jared Diamond. Gives a reasonable explanation why Europe invaded the Americas and not the other way around
  • The Prisoners Dilemma, by William Poundstone. The best explanation about Game Theory in daily life, told through a biography of John von Neumann.
  • Non-zero sum. Somewhat along the same lines, but worth reading
  • Pi in the sky, by John D. Barrow. Changed my way of thinking about mathematics
  • Probability Theory, The Logic of Science,by E.T.Jaynes. This book changed completely my thinking about the interpretation of probability theory.
  • Secret and Lies Digital Security in a Networked World, by Bruce Schneier. Even though I am not a fan of Applied Cryptography (even though he cites my work) I found this book inspiring
  • Database Nation, by Simson Garfinkel. Made me stop using my credit card. For one day.

Favourite programming language: Python. (I worked in the corridor as Guido :-)

Favourite films: Apocalypse Now, North by North-West

  • (09/Feb/2004 -- To be continued)

Custo transporte para Confins

*Confins define preços de transporte*

João Alberto Aguiar – Repórter

Os preços das quatro linhas de ônibus e táxis, brancos e azuis, que
levarão os passageiros de Belo Horizonte para Confins a partir do
próximo domingo, quando 120 vôos serão transferidos do Aeroporto da
Pampulha para o Aeroporto Internacional Tancredo Neves (Confins), já
estão definidos. De acordo com o diretor de Transporte Metropolitano do
Departamento de Estradas de Rodagem de Minas Gerais (DER/MG), Luiz
Otávio Valadares, a tarifa dos ônibus especiais, com saída do novo
terminal de embarque (Avenida Álvares Cabral, entre as ruas Espírito
Santo e Bahia), custará R$ 12,00.


Os veículos sairão em intervalos mínimos de cinco minutos e máximo de 15
minutos, dependendo dos horários de pico, indo direto para Confins.
Eventualmente, o período entre uma saída e outra poderá superar os 15
minutos, em horários com menor demanda. Outra linha é a do microônibus,
que também custará R$ 12,00. Nesse caso, porém, o usuário poderá optar
por ir do terminal até o Aeroporto da Pampulha, pagando R$ 6,00. Quem
estiver na Pampulha e quiser se deslocar para Confins também pagará R$ 6,00.
As outras duas opções de ônibus urbanos irão parar nos pontos ao longo
do trajeto. São eles os que saem da estação Rodoviária, mais
confortável, ao preço de R$ 5,25, e os que se dirigem para a cidade de
Confins. Antes de chegar ao município, o veículo fará uma parada no
Aeroporto de Confins. A condução sairá da Rua Caetés, esquina com
Olegário Maciel, na região central, ao custo de R$ 3,10. Segundo
Valadares, os ônibus especiais e os microônibus estão munidos com
sistema de segurança, como rastreamento.

O diretor também informou os preços dos táxis. O branco, partindo de
qualquer ponto da cidade, custará R$ 55,00. Atualmente, os valores giram
em torno de R$ 100,00, já que a tarifa de retorno para a capital está
embutida. A partir de domingo, ela deixa de existir. Apesar da afirmação
do diretor do DER/MG, o presidente do sindicato dos taxistas (Sincavir),
Dirceu Efigênio Reis, disse que a categoria já definiu, no sindicato,
que o preço a ser cobrado do passageiro é de R$ 60,00. "Falta apenas
definir amanhã (hoje) em reunião com o DER e a Infraero, na BHTrans", disse.
A tarifa do táxi azul, ou especial, que era de R$ 77,00, cairá para R$
60,00. Ao chegar ao Aeroporto de Confins, o taxista de Belo Horizonte
deverá passar por um local determinado, onde receberá um tíquete. Com
esse tíquete terá direito a entrar na fila e retornar para BH com outro
passageiro.

O limite de permanência na fila é de 200 táxis. Se já houver 200
veículos, o taxista deverá retornar sem passageiro, ou tentar uma vaga
depois. Ontem, depois de participar de um encontro no Aeroporto de
Confins, Valadares teria uma reunião com os prefeitos de Lagoa Santa e
Confins, onde o acordo seria formalizado. A reunião que definiu os
preços aconteceu na terça-feira à noite com representantes do DER/MG,
BHTrans e de taxistas de Belo Horizonte.

Os taxistas de Lagoa Santa e Confins vão direto para a fila. Eles
poderão retornar de BH para Confins com passageiros, através de um
sistema semelhante ao definido para os motoristas de táxi de BH. O
DER/MG informou ontem que o total de vagas na fila para os taxistas será
inferior ao que será disponibilizado para os taxistas da capital
mineira. Segundo o órgão, existem 130 táxis de Lagoa Santa e 40 de
Confins atuando no Aeroporto Internacional, além de outros 200 azuis, de
cooperativas.

2005/03/09

Generating permutation

I just read in Skiena's book that it is possible to generate a random permutation with uniform distribution like this:

for i=1 to n do a[i]=n
for i=1 to n-1 do swap( a[i], a[Random(i, n)])

where Random(i, n) generates a uniform random integer in {i, ..., n}

Wow, that's surprisingly simple.
Obviously, the amount of randomness needed is correct:
n * (n-1) * ... * 2. But why the result is uniform isn't clear.

(the next day)
Maybe it is not so surprising at all:
I seem to temember from Lenstra's algebra classes that any permutation can be described as a sequence of n-1 swaps between 1 and an arbitrary element, 2 and an arbitrary element, etc. as long as you leave 1, 2 etc alone from then n. You probably prove this by recursion. The result then follows.


I love Skiena's book with a wealth of interesting algorithms;
I think I'm gonna buy it. See his site:
http://www.cs.sunysb.edu/~algorith/info/form.shtml
http://www.cs.sunysb.edu/~algorith/

BTW, the nerdiest site on the internet:
http://www.research.att.com/~njas/sequences/

2005/03/07

Enc: [Sbc-l] programação matemática

Prezad*s,
Eu considero a situação muito mais grave. Além do fato que a maioria dos alunos em computação tem pouca noção de matemática, existe em Brasil um buracão entre a computação e a matemática em que quase ninguém está fazendo pesquisa.


Para clarificar: só matemático que virou pesquisador na informática teórica. Meu campo principal é a criptografia (protocolos zero-knowledge e quânticos), mas me interesso por muito mais assuntos, como
- teoria de informação (entropia de Shannon etc)
- teoria de complexidade (NP completeness, random complexity, reversible computing)
- complexidade de Kolmogorov
- teoria de informação quântica: (complexidade comunicação, complexidade de computação, códigos quânticos)

Trata-se de campos de pesquisa enormes em que centenas de pesquisadores no mundo inteiro atuam,
e que têm seus congressos anuais como STOC, FOCS, STACS, etc.
Até hoje (depois de quase 7 anos em Brasil) não encontrei nenhum pesquisador brasileiro fazendo pesquisa em um destas áreas.
(Se alguém conhece uma publicação brasileira em um deste congressos, gostaria de saber).

Existem mais áreas teóricas como
- teoria de computabilidade
- análise algoritmos
- teoria de códigos (para correção de erros)
- inteligência artificial teórica
- geometria computacional
- pesquisa operacional
- semântica de linguagem de operação
- análise formal de protocolos
- etc
Eu diria que estas áreas tinham menos dificuldades de ser reconhecidas,
ou porque sua utilidade era obvia,
ou por se tratar de áreas muito relacionadas à lógica.
Mas o que chama a atenção é que tudo que é relacionado
à teoria de complexidade aparentemente não chegou em Brasil.

Em muitos institutos que eu conheço no mundo, os departamentos de matemática e de computação formam um contínuo:
- O MIT já reconheceu a importância deste campo nos anos 80, e há no mínimo três professores de CS e no mínimo dois professores da matemática fazendo pesquisa nestas áreas
http://theory.lcs.mit.edu/people.html:
(pensei especificamente em Rivest, Goldwasser, Micali, Sipser e Spielman.
Pelo que saiba, Sipser e Spielman são de matemática, o primeiro
orientador do segundo. O trabalho dos outros membros do grupo eu não conheço)
- Na Universidade de Montreal (onde fiz meu doutorado) há 6 professores
para informática teórica:
http://www.iro.umontreal.ca/labs/theorique/
- O equivalente holandês do IMPA mudou de nome para
"Centrum voor Wiskunde [=matemática] en Informática" em 1980 (!!!)
onde há vários grupos fazendo pesquisa nestas áreas:
http://www.cwi.nl
- No Dinamarca tem o BRICS: www.brics.dk
E há muito mais grupos espalhado no mundo.

Em contrasto, no Brasil tem nada. A situação da UFMG me parece típico para o Brasil inteiro:
Existe um hiato entre o departamento de Computação e o de Matemática.
Exagerando um pouco: o informático quer saber nada de teoria mas
quer programar em Java (nada contra Java, é uma linguagem bonita).
E o matemático gosta de assuntos puros, como hiperquadrados não Riemannianos
["non-Riemannian hypersquares"; veja The mathematical experience, Davis & Hersch, pg 34]
e tem desdém para tudo que parece aplicado, como assuntos de computação
(passei anos entre matemáticos; sei como eles pensam).
Ambos acham, raciocinando dentro de seu sistema de pensamento fechado,
que informática teórica seja irrelevante. O resultado é previsível:
informática teórica não existe em Brasil, e isto se reflete no ensino.

A única universidade com um Departamento de Informática Teórica
é a UFRGS, pelo que achei via google:
http://www.inf.ufrgs.br/~hgmc/teorica/paginas/tecomp.html

Nem é um assunto simples: o que é mais útil para um bacharelado em
informática? Saber SQL e Java, ou saber qual é a definição de um bit
segundo a definição de Shannon, conhecer o problema da parada da Máquina de Turing?

Na Universidade de Montreal eu era monitor da disciplina
Informática teórica. Era uma disciplina temida porque era difícil,
e quem tomou bomba duas vezes tinha que sair do programa.
A situação em Brasil está melhorando um pouco por causa da criptografia,
um assunto cada vez mais importante por ser relacionado à segurança de computador.
Hoje há grupos fortes na Unicamp e USP (o LabSEC da UFSC é mais aplicado).

Me parece que a melhor estratégia seja de tentar convencer os matemáticos
que informática teórica é um campo interessante *e* relevante, o que não é
verdade para assuntos puros como hiperquadrados não Riemannianos
ou topologia (é um trauma minha -- tinha nota baixa para esta matéria).
Ao mesmo tempo, acredito que este país precise de um instituto para informática
teórica, parecido com o IMPA.

Quanto ao ensino na computação:
não sei se é verdade, mas tenho a impressão que muito programas ensinam
muito cálculo, tempo que na minha opinião poderia ser melhor aproveitado
ensinando matemática discreta. Há até uma explicação para isto:
muitas vezes quem define o programa são os matemáticos, que por força de tradição
dão ênfase na matemática contínua, enquanto para informática a matemática
discreta é muito mais relevante. Até me interessaria aprofundar este assunto um pouco.

Jerô

=================
Jeroen van de Graaf
jvdg@lcc.ufmg.br
LCC/Cenapad---UFMG
Prédio ICEX, sala 2040
(31) 3499 4909
----- Repassado por Jeroen Antonius Maria van de Graaf/LCC/ATI/REITORIA/UFMG em 06/03/05 22:04 -----
"Manuel ljfas"
Enviado Por: sbc-l-bounces@inf.ufrgs.br
03/03/05 09:45

Para
sbc-l@inf.ufrgs.br
cc
Assunto
Re: [Sbc-l] programação matemática







Caros
Eu já presenciei profissionais da computação desenvolvendo algoritmos ridículos, ineficientes e ilegíveis justamente por não saber programação matemática. Isso é consequência da má formação.
A programação matemática (programação linear, prog. Inteira, Prog. Dinâmica, Pesquisa Opercional, etc) faz uma ponte entre a teoria puramente matemática e a prática de projeto de algoritmos. Eu entendo que programação matemática está muito mais próxima da computação do que da matemática. Afinal, a essência dessa disciplina são os algoritmos e a modelagem de problemas.
Esse problema tem um efeito cascata. A ausência dessas disciplina geram profissionais que um dia podem se tornar professor. Na condição de professor, se ele não for trabalhar com disciplinas básicas (projeto de algoritmos, análise de algoritmos, teoria da computação, etc.) ele talvez não descubra a real necessidade das disciplinas que ele não teve. Mas ele descobre que tecnologias são interessantes porque está na mídia. Além disso, ele não se dá conta que tecnologia é igual moda, um dia é uma coisa, outro dia é outra. E assim, as diciplinas que dão base para a CIÊNCIA (da computação) vão sendo deixadas de lado.
Esse problema nós observamos também nos eventos da SBC. Se hoje eu desenvolver um algoritmo revolucionário para algum problema eu não consigo publicar no evento da SBC. Basta observar os worshops e seções do congresso da SBC deste ano. Não seria possível encaixar o artigo. Isso não é curioso?
No entanto, é possível publicar nos eventos tais como: Pesquisa Operacional, Matemática Computacional, etc. Nesses eventos nós encontramos muitas pesquisas sobre algoritmos. Isso também não é de interesse da computação? Algoritmos não é de interesse da computação?
Esse assunto realmente deveria ser discutido pela SBC.
Manuel









----- Original Message -----
From: campani@inf.ufrgs.br
To: sbc-l@inf.ufrgs.br
Subject: [Sbc-l] programação matemática
Date: Wed, 2 Mar 2005 11:03:23 -0300
>
> Caros e Caro Manuel:
>
> Oportuna a tua mensagem. Vejo nos últimos anos uma preocupação
> maior, no Brasil,
> com o tempo que o aluno permanece no curso superior que com sua efetiva
> formação. Isto ocorre normalmente pelo sacrifício de certas disciplinas em seu
> currículo, particularmente as mais teóricas. No entanto, são estas exatamente
> aquelas que lhe darão uma formação consistente. É o caso de programação
> matemática, importante disciplina que pode fornecer aos futuros bachareis um
> ferramental matemático precioso. Acho que a SBC deveria fazer uma discussão
> neste sentido. Uma outra disciplina, que me parece é apresentada aos alunos
> apenas na UFRGS e na PUC-Rio, é teoria das categorias, que é uma
> ferramenta bem
> interessante para ciência da computação, e cuja adoção nos cursos poderia
> incrementar a qualidade do profissional formado.
>
> Um abraço,
>
> Campani
>
> -----
>
> Colegas
>
> Costantemente nos deparamos com algoritmos concebidos a partir de
> formulações de programação matemática. Na literatura encontramos
> alguns desses algoritmos clássicos e muito importantes, tais como:
> algoritmo Húngaro para o problema de atribuição, algoritmo de
> Out-of-Kilter para Fluxo de Custo Mínimo, algoritmo de Edmond para
> Emparelhamento de Grafo não Bipartido. Alguns desses algoritmos
> baseiam-se em variáveis primais e/ou duais oriundas de formulações
> de programação matemática.
>
> Estes exemplos de algoritmos demostram a importância da programação
> matemática na concepção de algoritmos robustos e eficientes. Apesar
> disso, são POUCOS CURSOS de Ciência da Computação, tais como da
> UNICAMP e USP, que contêm disciplinas de programação matemática em
> sua grade curricular. Pelo menos é isso que eu tenho observado. Por
> que isso ocorre se algoritmos é a base da computação?
>
> Manuel
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
> _______________________________________________
> Sbc-l mailing list
> Sbc-l@inf.ufrgs.br
> https://listas.inf.ufrgs.br/mailman/listinfo/sbc-l
--
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm

_______________________________________________
Sbc-l mailing list
Sbc-l@inf.ufrgs.br
https://listas.inf.ufrgs.br/mailman/listinfo/sbc-l

2005/03/06

FHC X Lula

What I find striking is this:
3,4,5 years ago people would says many things about FH, like
"FH is killing public education"
("FH está acabando com o ensino público").

But today there are no similar phrases about Lula.
People will say
"O PT está acabando com o ensino público" ou
"O governo está acabando com o ensino público"
but never "Lula está acabando com o ensino público".

With FH everybody knew who was in power,
but with Lula nobody seems to know .......

2005/03/04

faq 2: como pronunciar meu nome (versão avançada)

Tudo a quem explico que quer ser chamado de "Jerô" pergunta num determinado momento "mas como se pronuncia seu nome mesmo?"

Isto me deixa louco:
1) Conheço um holandês que se chama oficialmente "Johan" (um equivalente de João) mas que assumiu o nome Renato em Brasil. Jerô em vez de Jeroen me parece plenamente razoável.
2) Este país é cheio de apelidos comuns e absurdos, como Vado, Lula, Chopinho e Toddinho e por aí vai.

Mas tudo bem. Quer saber?





Mesmo?






Tem certeza?





É difícil.



Até minha mulher tem dificuldade.




Você arisca uma nota baixa na minha de avaliação de pronúcias do meu nome:
http://jvdgraaf.blogspot.com/2005/03/avaliao.html

ok, te avisei :
  • o "j" no inicio é igual o "y" da palavra "yes" em inglês. Em particular, não há nenhum traço de uma fração de um pedaço de um "i" escondido. É só consoante.
  • o "r" é de caro (e não de carro)
  • "oe" em holandês é o som de "u" em português.
  • português não tem palavra que termina com "n" como consoante, aqui é tudo nasal. Mas meu nome é holandês. Uma boa comparação é com a palavra "moon" em inglês; meu nome quase rima com esta palavra.

Resumindo, acredito que foneticamente meu nome é "Yerún" (com um verdadeiro "n" no final).

faq 1: como pronuciar meu nome

Desde que deixei a Holanda em 1993, estou sendo perseguido pelo fato que ninguém sabe falar meu nome. No Canadá francês, ou seja, Québec, ninguém sabia falar meu nome direito.
Pior; às vezes as pessoas nem sabem copiar direito: eu escrevo JEROEN, a pessoa copia JERDEN. Aconteceu lá, aconteceu aqui.

Enquanto Jeroen é um nome muito comum na Holanda: tinha quatro na minha sala; virou o nome mais popular na Holanda desde que eu nasci (os especialistas ainda não concordam se a correlação e causal ou não),tem o ator famoso Jeroen Krabbé ("The Fugitive", and the Mossad boss in "Secret Weapon", the film about Vanunu), e o pintor famoso Jeroen (Hieronimus) Bosch (não se fala o "ch") ("El Bosco" em espanhol)
http://www.artonline.it/img/large/230gcd07.jpg
http://museoprado.mcu.es/i39a.html

Vamos fazer uma aproximação sucessiva, em 2 passos fáceis, e um opcional :

Passo 0:
Como não falar meu: Je-ro-én (ou com trema, como no Boëchat)
É assim que me chamam no médico -- nem tento corrigir. Mas está errado porque "oe" é um som em holandês, um vogal só.

Passo 1:
Eu gosto de ser chamado Jerô em Brasil. É a metade de Jerônimo então é fácil de se lembrar. Estou promovendo esta abordagem para facilitar o trabalho de meus ouvidos.

Não gostou tanto de Jerônimo (inteiro) porque meu irmão (que é mais velho portanto mais forte) me gozava quando criança. Também já conheço as piadas ("OOOOoooo....."), especialmente forte em São Paulo.

Passo opcional:
Eu também gosto de ser chamado "Jérôme" à la manière française. Minhas tias em França me chamam assim.

Conheço alguém que se chama "Jero", na pronuncia igual a conjugação "gero" de verbo "gerar". Porém, na verdeira pronuncia de meu nome, a ênfase fica na segunda silabe, portanto "Jerô" é mais consistente.

Leia também:
http://jvdgraaf.blogspot.com/2005/03/faq-2-como-pronunciar-meu-nome-verso.html

2005/02/27

memory 3: schemes to enhance your memory

I thought Higbee's book only got really interesting in Chapter 9 and further. He discusses the following techniques:
- link and story mnemonic: create links between the topics you need to remember, either by creating a link between to successive items (link) or making a story.
- loci mnemonic: relate everything to remember to the map of your home
- peg
- phonetic mnemonic: see below

I knew the loci system alraedy and I don't like it, I am too lazy to make up whole stories. The link system is very powerful: in an example we are supposed to remember the word paper-tire-doctor-rose-ball. He teaches us that we should use visual images, preferably absurd ones. And it works: I read this Chapter four or five days ago and remember the list without a problem.

When I read this I thought it would be cute to associate each number to an object, only to see that this is the essence of the peg and the photonic system. But his peg system isn't good for me because the object rimes with the words in English. Since I have three languages to deal with Higbee's mapping doesn't work for me.

But I really got hooked to the photonic system: each number is linked to a set of consonents; the vowels are only used to make words. His system is (slightly adapted):
# menominic other consonents

0 z zero z,s
1 t t,d
2 n two downstrokes
3 m three downstrokes
4 r vier, four, quatro
5 l lijf, vijl
6 j yes j, sj, ch, y, soft g, dutch g
7 k kever k, q, hard c, hard g
8 f shape f f,v
9 p shape p p,b

This takes some time to learn, but I think it pays of. I wanted to remember the amount 364, 84,
which I transalted to the (absurd) word majoor-vier, or major-four in English. I might forget the number, but forgetting this absurd word is hard. Interestingly, the scheme has some resilience for some language changes, which is very important to me. I am thinking of writing Python scripts that would find candidate words for me. Or maybe it should be in JavaScript.

BTW, I thought Higbee was cheating a bit. He said twice that people do not easily remember what is the n'th letter of the alphabet, but with some training you get very far:

A-H = 1-8 (any who played chess knows that)
IJ = 9, 10
KLM = 11,12,13
NOP = 14,15,16 (with N starts the second half alphabet)
QRST= 17,18,19,20 (Q = queer = prime; T = twenty)
UVW = 21, 22, 23
XYX = 24, 25, 26

That's not so tough. I tend to get lost in the second half of the alphabet, but the associations for Q and T will resolve that. So it's not too difficult, but it wouldn't sell Higbee's phonetic system so well

2005/02/26

memory 2: celsius to fahrenheit

Eugenio borrowed me "Your memory" by Kenneth Higbee, Ph.D. Very interesting. I was finally able to remember the formula F=9/5C + 32 because of a phrase like "Friday is another 9 to 5 day at college. But I only have 32 minutes more to go before weekend starts."

Well, actually knowing the formula isn't gonna help a lot. When I lived in Canada I knew the following table by heart; it's more useful for day-to-day things:

C F
0 32 = 30+2
10 50 = 50+0
20 68 = 70-2
30 86 = 90-4



(tbc)

playing in the lottery

Last week the MegaSena was above 20 million reais (about 7 million US), I took the form but couldn't convince myself to play. The problem is that I never know which numbers to fill in.

The reasoning goes like this
1) Obviously, filling in 1, 2, 3, 4, 5, 6 is ridiculous
2) The probability of another combination of 6 (out of 60) has the same probability
3) Therefor any other comination is ridiculous.
4) Conclusion: playing is ridiculous

Nevertheless, if you play you have a(n infinitesmal small) probability of winning, whereas as you don't play you will not win.

Another reasoning goes like this:
1) The probability of winning is 1 in (6 choose 60) = 50.063,860
2) Air line incident (i.e. irregularity, not necessarily an accident) statistics are measured per million flights.
3) I how can I know that if one very unlikely event happens (winning lottery), that the other (airline crash) won't happen too.
My wife says I should play, win the lottery but than never fly buy plane, but I don't trust her (she is only heir).

Soon: how human intuition fails with conditional probabilities.

2005/02/23

converting pdf to text

I needed to convert some pdf files to text,
some of which I then converted to .doc .

I tried several tools but believe the best is
http://www.foolabs.com/xpdf/download.html

The windows version does not come with a fancy
interface (I think); you have to run through MS-DOS.

You need to check the output. For instance,
page numbers, page headers, page footers and
watermark will appear too. In one case,
the watermark "MINUTA" (draft in Portuguese)
was broken into "MI" and "NUTA" scattered
over the page.

Another problem is that it doesn't treat accents well.
I tried to write an AWK script to patch this,
but it didn't work in all cases (the hatted (^) letters
didn't come out well).

The best thing to do is to enter the text afterwards in
a program that does spelling correction, and in a few
minutes you correct everything.

2005/02/22

how to calculate the day of the week

Eugênio told me today that by remembering twelve digits, we can know which is the first Sunday of each month and hence calculate all other days: 266-315-374-264.

There is however a neater trick:
in 2005, the following dates always fall on a Monday:
0/2 (last day of January)

0/3 (last day of February)
4/4,
6/6,
8/8,
10/10,
12/12,
7/11,
11/7,
9/5,
5/9,

This day has been baptised Doomsday (because it is
the last day of February), and in 2005 it is Monday,
in 2006 a Tuesday, in 2007 a Wednesday. 2008 is a leapyear;
by then I will explain how to deal with this case :-)

The mnemonic for May/July/September/November is:
"I have a 9 to 5 job at 7-11";
Seven-Eleven is a convenience store that opens
at 7 in the morning and closes at 11 at night.

Anyway, just remebering the "9 to 5 job" part is enough.

The trick is attributed to John Conway, whose books
("On Numbers and Games", and "Winning Ways")
I have tried to read several times. With no success, though.
BTW, the original text is far more complicated than the
explanations now available on the Internet.


See for instance
http://quasar.as.utexas.edu/BillInfo/doomsday.html
http://rudy.ca/doomsday.html
or search for "doomsday conway"

2005/02/15

Calculators

Well, Scott Kirkwood told me I should have a blog. I did not have many uses, but I have many ideas that I forget and then they revive over time. One is about calculotors:

As a 16 year old I bought an HP25 RPN programmable calculator. I was the first in school to have such a powerful computing machine. I'm afraid I threw it away, but it was a great machine. It prepared me for my career in computing and math -- access to computers was scarce at the time. If I am nostalgic I go to
http://www.hpmuseum.org/simulate/simulate.htm#java25

As a present to my PH.D I bought another HP, 32SII, but it has a problem with the display. I will try (once more) to get it fixed.

But recently I got fascinated with the HP12C, which all financial people use. As a mathematician I thought I needed to inderstand what the fuss is all about. I bought one second hand in order to play and figure out what it was all about. Well, its all about compound interest, i.e. $$$. But in practice I prefer making a spreadsheet for such calculations.

I know about three interesting links about the HP12C:
http://www.hpcalc.org/details.php?id=4345
Visually identical to the real machine. Whether the results are accurate I don't know.

http://www.hpcalc.org/details.php?id=4188
This one is visually ugly, but showes all the registers, which might be useful for understanding.

http://h10032.www1.hp.com/ctg/Manual/bpia5184.pdf
Solving financial problems with the HP12C

For my Windows PC I use the Excalibur software for scientific stuff.
I can't find the webpage, but google for Excalibur calculatot 32-bit

I also downloaded RPN Calc but never use it.

There are also JavaSCript implemenatations, as
http://www.arachnoid.com/lutusp/calculator.html
But I find the lay-out too ugly.

For cryptographic use, with big numbers, the following page is useful:
http://world.std.com/~reinhold/BigNumCalc.html