<D
Y> M> D>

I had a dream about a bike ride around the Bay Area. (Unrealistically, a loop around the entire area, crossing the Bay Bridge, the Richmond/San Rafael Bridge, and the Golden Gate Bridge, took only a couple of hours.) The ride took place at night with a large group and there were very interesting social dynamics in the group which I don't quite remember.

There was one woman riding a bike whom I wanted to talk to, but she took an alternate route and eluded me.

This dream reminded me of another dream I had about three months ago where two friends and I were trying to cross the Bay -- using personal floatation devices with our feet dangling in the water. That was pretty scary; the only reason we did that was because (as in another dream I once had) the alternative was not the Bay Bridge as we know it but rather an open-air roller-coaster which holds you at frightening angles for a long time high above the Bay.

If that roller-coaster is ever constructed in place of the Bay Bridge, don't take it! (I don't recommend paddling across with a personal floatation device either.)

Alas, not executed with human skill, but in a computer's memory:

[zork(~)] python -i cards.py
>>> d = Deck(); print d
[Ace of Spades, 2 of Spades, 3 of Spades, 4 of Spades, 5 of Spades, 6 of
Spades, 7 of Spades, 8 of Spades, 9 of Spades, 10 of Spades, Jack of Spades,
Queen of Spades, King of Spades, Ace of Hearts, 2 of Hearts, 3 of Hearts,
4 of Hearts, 5 of Hearts, 6 of Hearts, 7 of Hearts, 8 of Hearts, 9 of Hearts,
10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, Ace of Clubs,
2 of Clubs, 3 of Clubs, 4 of Clubs, 5 of Clubs, 6 of Clubs, 7 of Clubs, 8 of
Clubs, 9 of Clubs, 10 of Clubs, Jack of Clubs, Queen of Clubs, King of Clubs,
Ace of Diamonds, 2 of Diamonds, 3 of Diamonds, 4 of Diamonds, 5 of Diamonds,
6 of Diamonds, 7 of Diamonds, 8 of Diamonds, 9 of Diamonds, 10 of Diamonds,
Jack of Diamonds, Queen of Diamonds, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, Ace of Clubs, 2 of Spades, 2 of Clubs, 3 of Spades, 3
of Clubs, 4 of Spades, 4 of Clubs, 5 of Spades, 5 of Clubs, 6 of Spades,
6 of Clubs, 7 of Spades, 7 of Clubs, 8 of Spades, 8 of Clubs, 9 of Spades,
9 of Clubs, 10 of Spades, 10 of Clubs, Jack of Spades, Jack of Clubs, Queen
of Spades, Queen of Clubs, King of Spades, King of Clubs, Ace of Hearts,
Ace of Diamonds, 2 of Hearts, 2 of Diamonds, 3 of Hearts, 3 of Diamonds,
4 of Hearts, 4 of Diamonds, 5 of Hearts, 5 of Diamonds, 6 of Hearts, 6 of
Diamonds, 7 of Hearts, 7 of Diamonds, 8 of Hearts, 8 of Diamonds, 9 of Hearts,
9 of Diamonds, 10 of Hearts, 10 of Diamonds, Jack of Hearts, Jack of Diamonds,
Queen of Hearts, Queen of Diamonds, King of Hearts, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, Ace of Hearts, Ace of Clubs, Ace of Diamonds, 2 of Spades,
2 of Hearts, 2 of Clubs, 2 of Diamonds, 3 of Spades, 3 of Hearts, 3 of
Clubs, 3 of Diamonds, 4 of Spades, 4 of Hearts, 4 of Clubs, 4 of Diamonds,
5 of Spades, 5 of Hearts, 5 of Clubs, 5 of Diamonds, 6 of Spades, 6 of
Hearts, 6 of Clubs, 6 of Diamonds, 7 of Spades, 7 of Hearts, 7 of Clubs,
7 of Diamonds, 8 of Spades, 8 of Hearts, 8 of Clubs, 8 of Diamonds, 9 of
Spades, 9 of Hearts, 9 of Clubs, 9 of Diamonds, 10 of Spades, 10 of Hearts,
10 of Clubs, 10 of Diamonds, Jack of Spades, Jack of Hearts, Jack of Clubs,
Jack of Diamonds, Queen of Spades, Queen of Hearts, Queen of Clubs, Queen
of Diamonds, King of Spades, King of Hearts, King of Clubs, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 7 of Clubs, Ace of Hearts, 7 of Diamonds, Ace of Clubs, 8 of
Spades, Ace of Diamonds, 8 of Hearts, 2 of Spades, 8 of Clubs, 2 of Hearts,
8 of Diamonds, 2 of Clubs, 9 of Spades, 2 of Diamonds, 9 of Hearts, 3 of
Spades, 9 of Clubs, 3 of Hearts, 9 of Diamonds, 3 of Clubs, 10 of Spades,
3 of Diamonds, 10 of Hearts, 4 of Spades, 10 of Clubs, 4 of Hearts, 10 of
Diamonds, 4 of Clubs, Jack of Spades, 4 of Diamonds, Jack of Hearts, 5 of
Spades, Jack of Clubs, 5 of Hearts, Jack of Diamonds, 5 of Clubs, Queen
of Spades, 5 of Diamonds, Queen of Hearts, 6 of Spades, Queen of Clubs,
6 of Hearts, Queen of Diamonds, 6 of Clubs, King of Spades, 6 of Diamonds,
King of Hearts, 7 of Spades, King of Clubs, 7 of Hearts, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 4 of Hearts, 7 of Clubs, 10 of Diamonds, Ace of Hearts, 4
of Clubs, 7 of Diamonds, Jack of Spades, Ace of Clubs, 4 of Diamonds, 8 of
Spades, Jack of Hearts, Ace of Diamonds, 5 of Spades, 8 of Hearts, Jack of
Clubs, 2 of Spades, 5 of Hearts, 8 of Clubs, Jack of Diamonds, 2 of Hearts,
5 of Clubs, 8 of Diamonds, Queen of Spades, 2 of Clubs, 5 of Diamonds,
9 of Spades, Queen of Hearts, 2 of Diamonds, 6 of Spades, 9 of Hearts,
Queen of Clubs, 3 of Spades, 6 of Hearts, 9 of Clubs, Queen of Diamonds,
3 of Hearts, 6 of Clubs, 9 of Diamonds, King of Spades, 3 of Clubs, 6 of
Diamonds, 10 of Spades, King of Hearts, 3 of Diamonds, 7 of Spades, 10 of
Hearts, King of Clubs, 4 of Spades, 7 of Hearts, 10 of Clubs, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 9 of Spades, 4 of Hearts, Queen of Hearts, 7 of Clubs, 2 of
Diamonds, 10 of Diamonds, 6 of Spades, Ace of Hearts, 9 of Hearts, 4 of Clubs,
Queen of Clubs, 7 of Diamonds, 3 of Spades, Jack of Spades, 6 of Hearts,
Ace of Clubs, 9 of Clubs, 4 of Diamonds, Queen of Diamonds, 8 of Spades,
3 of Hearts, Jack of Hearts, 6 of Clubs, Ace of Diamonds, 9 of Diamonds,
5 of Spades, King of Spades, 8 of Hearts, 3 of Clubs, Jack of Clubs, 6 of
Diamonds, 2 of Spades, 10 of Spades, 5 of Hearts, King of Hearts, 8 of Clubs,
3 of Diamonds, Jack of Diamonds, 7 of Spades, 2 of Hearts, 10 of Hearts,
5 of Clubs, King of Clubs, 8 of Diamonds, 4 of Spades, Queen of Spades,
7 of Hearts, 2 of Clubs, 10 of Clubs, 5 of Diamonds, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 5 of Spades, 9 of Spades, King of Spades, 4 of Hearts, 8 of
Hearts, Queen of Hearts, 3 of Clubs, 7 of Clubs, Jack of Clubs, 2 of Diamonds,
6 of Diamonds, 10 of Diamonds, 2 of Spades, 6 of Spades, 10 of Spades, Ace
of Hearts, 5 of Hearts, 9 of Hearts, King of Hearts, 4 of Clubs, 8 of Clubs,
Queen of Clubs, 3 of Diamonds, 7 of Diamonds, Jack of Diamonds, 3 of Spades,
7 of Spades, Jack of Spades, 2 of Hearts, 6 of Hearts, 10 of Hearts, Ace of
Clubs, 5 of Clubs, 9 of Clubs, King of Clubs, 4 of Diamonds, 8 of Diamonds,
Queen of Diamonds, 4 of Spades, 8 of Spades, Queen of Spades, 3 of Hearts,
7 of Hearts, Jack of Hearts, 2 of Clubs, 6 of Clubs, 10 of Clubs, Ace of
Diamonds, 5 of Diamonds, 9 of Diamonds, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 3 of Spades, 5 of Spades, 7 of Spades, 9 of Spades, Jack of
Spades, King of Spades, 2 of Hearts, 4 of Hearts, 6 of Hearts, 8 of Hearts,
10 of Hearts, Queen of Hearts, Ace of Clubs, 3 of Clubs, 5 of Clubs, 7 of
Clubs, 9 of Clubs, Jack of Clubs, King of Clubs, 2 of Diamonds, 4 of Diamonds,
6 of Diamonds, 8 of Diamonds, 10 of Diamonds, Queen of Diamonds, 2 of Spades,
4 of Spades, 6 of Spades, 8 of Spades, 10 of Spades, Queen of Spades, Ace of
Hearts, 3 of Hearts, 5 of Hearts, 7 of Hearts, 9 of Hearts, Jack of Hearts,
King of Hearts, 2 of Clubs, 4 of Clubs, 6 of Clubs, 8 of Clubs, 10 of Clubs,
Queen of Clubs, Ace of Diamonds, 3 of Diamonds, 5 of Diamonds, 7 of Diamonds,
9 of Diamonds, Jack of Diamonds, King of Diamonds]
>>> d.out_shuffle(); print d
[Ace of Spades, 2 of Spades, 3 of Spades, 4 of Spades, 5 of Spades, 6 of
Spades, 7 of Spades, 8 of Spades, 9 of Spades, 10 of Spades, Jack of Spades,
Queen of Spades, King of Spades, Ace of Hearts, 2 of Hearts, 3 of Hearts,
4 of Hearts, 5 of Hearts, 6 of Hearts, 7 of Hearts, 8 of Hearts, 9 of Hearts,
10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, Ace of Clubs,
2 of Clubs, 3 of Clubs, 4 of Clubs, 5 of Clubs, 6 of Clubs, 7 of Clubs, 8 of
Clubs, 9 of Clubs, 10 of Clubs, Jack of Clubs, Queen of Clubs, King of Clubs,
Ace of Diamonds, 2 of Diamonds, 3 of Diamonds, 4 of Diamonds, 5 of Diamonds,
6 of Diamonds, 7 of Diamonds, 8 of Diamonds, 9 of Diamonds, 10 of Diamonds,
Jack of Diamonds, Queen of Diamonds, King of Diamonds]
>>>

I'll spare you the 52 in-shuffles, but you can watch them if you want. I can give a quick confirmation that 52 in-shuffles are equivalent to a null (identity) shuffle:

[zork(~)] python -i cards.py
>>> d = Deck(); print d
[Ace of Spades, 2 of Spades, 3 of Spades, 4 of Spades, 5 of Spades, 6 of
Spades, 7 of Spades, 8 of Spades, 9 of Spades, 10 of Spades, Jack of Spades,
Queen of Spades, King of Spades, Ace of Hearts, 2 of Hearts, 3 of Hearts,
4 of Hearts, 5 of Hearts, 6 of Hearts, 7 of Hearts, 8 of Hearts, 9 of Hearts,
10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, Ace of Clubs,
2 of Clubs, 3 of Clubs, 4 of Clubs, 5 of Clubs, 6 of Clubs, 7 of Clubs, 8 of
Clubs, 9 of Clubs, 10 of Clubs, Jack of Clubs, Queen of Clubs, King of Clubs,
Ace of Diamonds, 2 of Diamonds, 3 of Diamonds, 4 of Diamonds, 5 of Diamonds,
6 of Diamonds, 7 of Diamonds, 8 of Diamonds, 9 of Diamonds, 10 of Diamonds,
Jack of Diamonds, Queen of Diamonds, King of Diamonds]
>>> for i in range(52):
...     d.in_shuffle()
...
>>> print d
[Ace of Spades, 2 of Spades, 3 of Spades, 4 of Spades, 5 of Spades, 6 of
Spades, 7 of Spades, 8 of Spades, 9 of Spades, 10 of Spades, Jack of Spades,
Queen of Spades, King of Spades, Ace of Hearts, 2 of Hearts, 3 of Hearts,
4 of Hearts, 5 of Hearts, 6 of Hearts, 7 of Hearts, 8 of Hearts, 9 of Hearts,
10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, Ace of Clubs,
2 of Clubs, 3 of Clubs, 4 of Clubs, 5 of Clubs, 6 of Clubs, 7 of Clubs, 8 of
Clubs, 9 of Clubs, 10 of Clubs, Jack of Clubs, Queen of Clubs, King of Clubs,
Ace of Diamonds, 2 of Diamonds, 3 of Diamonds, 4 of Diamonds, 5 of Diamonds,
6 of Diamonds, 7 of Diamonds, 8 of Diamonds, 9 of Diamonds, 10 of Diamonds,
Jack of Diamonds, Queen of Diamonds, King of Diamonds]
>>>

Now, that was anticlimactic, wasn't it? But it would have been too much to reproduce all of the intermediate steps. I assure you that the in_shuffle() function is actually doing an in-shuffle.

One of the coolest things in the world is the discovery by Elmsley (reported by Gardner) that the binary number system directly gives you the sequence of perfect shuffles needed to displace the top card down a certain distance:

To move the top card down Use this sequence (O[ut]/I[n])
0 O
1 I
2 I, O
3 I, I
4 I, O, O
5 I, O, I
6 I, I, O
7 I, I, I
8 I, O, O, O
9 I, O, O, I
10 I, O, I, O

(Of course the pattern continues: to bring the top card to the bottom, you can use I, I, O, O, I, I -- 110011 is binary for 51.)

Isn't that beautiful? Of course, the bottom card moves up by exactly the same amount that the top card moves down.

Using Elmsley's principle, to move the top card of a deck down by 17, you need I, O, O, O, I. Let's try it (emphasis added):

>>> d = Deck()
>>> print d
[

, 2 of Spades, 3 of Spades, 4 of Spades, 5 of Spades, 6 of Spades, 7 of Spades, 8 of Spades, 9 of Spades, 10 of Spades, Jack of Spades, Queen of Spades, King of Spades, Ace of Hearts, 2 of Hearts, 3 of Hearts, 4 of Hearts, 5 of Hearts, 6 of Hearts, 7 of Hearts, 8 of Hearts, 9 of Hearts, 10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, Ace of Clubs, 2 of Clubs, 3 of Clubs, 4 of Clubs, 5 of Clubs, 6 of Clubs, 7 of Clubs, 8 of Clubs, 9 of Clubs, 10 of Clubs, Jack of Clubs, Queen of Clubs, King of Clubs, Ace of Diamonds, 2 of Diamonds, 3 of Diamonds, 4 of Diamonds, 5 of Diamonds, 6 of Diamonds, 7 of Diamonds, 8 of Diamonds, 9 of Diamonds, 10 of Diamonds, Jack of Diamonds, Queen of Diamonds,

] >>> d.in_shuffle() >>> d.out_shuffle() >>> d.out_shuffle() >>> d.out_shuffle() >>> d.in_shuffle() >>> print d [9 of Clubs, Ace of Clubs, Queen of Diamonds, 4 of Diamonds, 2 of Hearts, 7 of Spades, 6 of Clubs, 10 of Hearts, 9 of Diamonds, Ace of Diamonds, Queen of Spades, 4 of Spades, 3 of Clubs, 7 of Hearts, 6 of Diamonds, Jack of Clubs, 9 of Spades,

, Queen of Hearts, 4 of Hearts, 3 of Diamonds, 8 of Clubs, 6 of Spades, Jack of Diamonds, 9 of Hearts, Ace of Hearts, King of Clubs, 5 of Clubs, 3 of Spades, 8 of Diamonds, 6 of Hearts, Jack of Spades, 10 of Clubs, 2 of Clubs,

, 5 of Diamonds, 3 of Hearts, 8 of Spades, 7 of Clubs, Jack of Hearts, 10 of Diamonds, 2 of Diamonds, King of Spades, 5 of Spades, 4 of Clubs, 8 of Hearts, 7 of Diamonds, Queen of Clubs, 10 of Spades, 2 of Spades, King of Hearts, 5 of Hearts] >>> print d.cards[17] # the 18th card in the deck; the card with 17 above it Ace of Spades >>>

Notice that the King of Diamonds has moved up 17 positions, too!

I put up my collection of bookmarks and business cards from bookstores. I have 64 of them. Of course, I've been to more than 64 bookstores, but I didn't always collect their bookmarks, and some bookstores don't have a bookmark or business card to give out.

There must be about a dozen bookstores in Western Massachusetts that I've been to that I don't have a bookmark from.

One rule about this collection is that I won't display bookmarks if I haven't been to a bookstore in person (or met a dealer who was displaying wares); I haven't quite decided about mail order, because I have bought books from five or six dealers through the mail and never met them in person.


[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen